[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00126] DOMSource を String に変換する



こんばんは、酒井です。

アプレット内でDOMSource を String に変換しようとしています。下記の現象が発生
して作成が難航しています。ご助言いただけないでしょうか。


●状況
DOMSource を String に変換する目的で下記コードを含むアプレットを作成しまし
た。


 1:     StringWriter strReturn = new StringWriter();
 2:
 3:     TransformerFactory trfactory = TransformerFactory.newInstance();
 4:     Transformer t = trfactory.newTransformer();
 5:     t.setOutputProperty("encoding","Shift_JIS");
 6:     t.setOutputProperty("version","1.0");
 7:     t.setOutputProperty("indent", "yes");
 8:
 9:     t.transform(new DOMSource(src), new StreamResult(strReturn));
10:
11:     return strReturn.toString();

このアプレットをサーバー上に置き、クライアント上でブラウザを介しての実行を行
うと下記エラーが発生します。


org.apache.xml.utils.WrappedRuntimeException: Output method is xml could not
load output_xml.properties (check CLASSPATH)
 at
org.apache.xalan.templates.OutputProperties.getDefaultMethodProperties(Outpu
tProperties.java:364)
 at
org.apache.xalan.templates.OutputProperties.<init>(OutputProperties.java:130
)
 at
org.apache.xalan.transformer.TransformerIdentityImpl.<init>(TransformerIdent
ityImpl.java:104)
 at
org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(Transformer
FactoryImpl.java:804)


トレースを見る限りでは、上記コードの4行目にある、TransformerFactory のメ
ソッド newTransformer で停止しています。


クライアントは Java2 SDK 1.4.1 。サーバーは Java SDK 1.1.8 です。

ためしに、クライアントでスタンドアロン環境下で動作させたところ正常に動作しま
した。


●質問
アプレットはクライアントにダウンロードされて動作しているように思えるが、サー
バー側の Java のバージョンが影響するのでしょうか。
このエラーの原因と回避方法をご教えていただけいないでしょうか。

また、上記のソースコードの4行目のnewTransformer()は引数を指定しないと新しい
Transformerを作成します。引数に変換につかうXSLを指定するとこのエラーは回避で
きました。
そこで、XSLを指定してこのエラーを回避する方法も考えました。しかし、DOMSource
を単純に文字列に変換するためのXSLがわからないため先に進みません。単純に文字
列に変換するためのXSLを教えていただけいないでしょうか。