0

我在 Ubuntu 的 Axis2 平台上部署了一个 .aar 文件。我正在使用 Oracle JDK1.7 Tomcat 7.0.35 和 Axis2 1.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

只需使用您的一个类来获取它们的类加载器,然后使用它:

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

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

它适用于 Tomcat、Axis2 部署代码和开发环境单元测试代码!

于 2013-01-27T07:26:17.557 回答