0

UbuntuのTomcat、Axis2プラットフォームに.aarファイルをデプロイしています。Oracle JDK1.7Tomcat7.0.35とAxis21.6.2を使用しています

最近、java.util.ServiceLoaderクラスを使用して、いくつかのクラスの実装を動的にロードするようにリファクタリングを行いました。

これが私のaarファイル構造です:

META-INF folder

services.xml Contains info about the web service

services folder
    com.companyname...interfacename1 (contains implementation class name)
    com.companyname...interfacename2 (contains implementation class name)
    com.companyname...interfacename3 (contains implementation class name)

com folder
    companyname folder
        bla bla.class compiled class files here

私のEclipse開発環境では、メソッドは問題なく実行されますが、Axis2 Tomcatプラットフォームで実行されると、ServiceLoaderクラスは実装クラスをロードできません。何が問題になる可能性がありますか?どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

クラスの 1 つを使用して classLoader を取得し、それを使用します。

    ClassLoader classLoader = com.companyname.blabla.MyClass1.getClassLoader();

    java.util.ServiceLoader.load(blabla.class,classLoader);

Tomcat、Axis2 でデプロイされたコードと開発環境の単体テスト コードの両方で機能します。

于 2013-01-27T07:26:17.557 に答える