7

クラスパスにwoodstoxとJava SE 1.6 staxパーサーがありますが、woodstoxがデフォルトで選択されているようです。ただし、デフォルトの Java stax パーサーを使用したい場合もあります。使用する実装を指定する方法はありますか?

4

2 に答える 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 に答える