Eclipse プラグインで xalan を使用すると問題が発生します。
次の方法でファクトリーインスタンスを作成しようとすると:
TransformerFactory tFactory = TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl", null);
エラーが発生します:
javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
...
プラグイン クラスパスに次のライブラリがあります: xml-apis.jar、xercesImpl.jar、serializer.jar、xalan.jar
次の方法でもクラスインスタンスを作成できません。
c = Class.forName("org.apache.xalan.processor.TransformerFactoryImpl");
Object o = c.newInstance();
ClassNotFoundException を返します
しかし、同じ jar から他のクラスのインスタンスを作成し、Eclipse の外部で同じコードを問題なく実行できます。
何か案が?
編集: TransformerFactory インスタンス化クラス (「class1」など) は、プラグイン クラスパスに追加された外部ライブラリの一部ですが、xalan.jar もプラグイン クラスパスにあります。この「class1」をプラグインに移動すると、プロバイダーが検出され、正常に動作します。