« 磁石でも引きずってろ。 | Main | ゴールドクレストを買った。 »
2007年03月10日(土)
休日出勤。
JDK5.0で標準のxmlパーサが変更になった。パーサの仕様のせいで1.4.2では処理できたxmlが5.0では動かない場合がある。この場合はxmlパーサを標準ではなく古いパーサにする。
オプションに
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
を追加して、クラスパスにxalan.jarとserializer.jarを入れる。クラスパスにxalan.jarがあると優先的にそっちのxmlパーサを使うが、EJBなどのリフレクションで動くクラスはクラスパスの検索順が変わってくるので、プロパティで明示的に指定する必要がある。APサーバだったら、APサーバの起動オプションに上記を仕込む。あるプログラムのバグを追いかけて追いかけてこの対処にたどり着くまで8時間。クソ。