クラスパスにwoodstoxとJava SE 1.6 staxパーサーがありますが、woodstoxがデフォルトで選択されているようです。ただし、デフォルトの Java stax パーサーを使用したい場合もあります。使用する実装を指定する方法はありますか?
4398 次
2 に答える
10
最も簡単な方法は、必要なものを直接インスタンス化することです。使用する必要はありませんXMLInputFactory.newInstance()
。Woodstox の場合、インスタンス化しますcom.ctc.wstx.stax.WstxInputFactory
。Sun の実装の場合は別のもの (com.sun.sjsxp など) です。Woodstox jar がクラスパスにない場合に Stax API を介してインスタンス化すると、クラス名を確認できます。
ただし、絶対に間接化を使用したい場合は、javadocs に従って、システム プロパティ「javax.xml.stream.XMLInputFactory」の値が使用されます。値は、インスタンス化するクラスの名前です。
于 2011-02-23T07:12:34.357 に答える
0
同様の問題がありました.ローカルのjbossにはパスにwoodstoxがありますが、リモートサーバーにはありません(または何かが正しく構成されていません)。そこで、リファレンス実装をインスタンス化することにしました。
// Use BEA streaming parser to avoid runtime exceptions
XMLOutputFactory xmlof = new XMLOutputFactoryBase();
于 2012-08-16T14:39:12.970 に答える