Java 无法初始化类org.apache.axis.client.AxisClient抛出,即使axis jar在那里

Java 无法初始化类org.apache.axis.client.AxisClient抛出,即使axis jar在那里,java,web-services,axis,noclassdeffounderror,nexus,Java,Web Services,Axis,Noclassdeffounderror,Nexus,我正在为NexusOSS编写一个插件。在这里,我使用axis进行Web服务调用。它抛出一个 InvocationTargetException:target:java.lang.NoClassDefFoundError:无法初始化类org.apache.axis.client.AxisClient 所以我担心nexus在抛出这个NoClassDefFoundError时是否找不到我的axis jar。因此,我开始一步一步地调试,以检查nexus是否知道我的axis jar,在调试时,我发现控件位

我正在为NexusOSS编写一个插件。在这里,我使用axis进行Web服务调用。它抛出一个

InvocationTargetException:target:java.lang.NoClassDefFoundError:无法初始化类org.apache.axis.client.AxisClient

所以我担心nexus在抛出这个NoClassDefFoundError时是否找不到我的axis jar。因此,我开始一步一步地调试,以检查nexus是否知道我的axis jar,在调试时,我发现控件位于axis jar内部(因此我假设nexus没有看到axis jar是错误的)。它进入axis的内部,那里的代码就像

protected AxisClient getAxisClient() {
    return new AxisClient(getEngineConfiguration());
}

/**
 * Constructs a new Service object - this assumes the caller will set
 * the appropriate fields by hand rather than getting them from the
 * WSDL.
 */
public Service() {
    engine = getAxisClient();
}
它在engine=getAxisClient()行抛出此异常;这实际上是在第returnnewaxisclient(getEngineConfiguration())行;在getAxisClient方法内部。 因此,如果它能够找到axis.jar中的service.java,那么它就没有任何理由无法找到axisjar中相同包中的AxisClient类

所以你能帮我找出这个例外的原因吗

我的axis jar不是由nexus获取的吗?
如何确定这个罐子是不是由nexus取来的?

我的老板帮我找到了答案

这实际上是commons日志记录的问题。我在我的nexus中加载了一个commons日志。在jetty服务器中运行的nexus本身有一个commons日志,因此存在冲突。现在我从插件描述符中删除了我的公共日志记录。然后问题解决了,我的插件开始工作


谢谢。

您应该添加StackTrace。我建议您使用nexus客户端库,而不是在Java类中公开nexus的REST API,而不是使用Axis编写自己的API。它还提供了一系列其他有用的类来执行Nexus版本检查等操作。我只使用他们的rest插件。在使用我的服务器进行身份验证(自定义身份验证)期间,我会执行一个soap调用,因为我的服务器只响应soap登录。此soap调用在身份验证模块中。请相信-您的问题不清楚。如果您的问题让您感到失望,可能是,对不起。可能是我的语言问题,我还加了“commons discovery”,这就是我的情况。如果您使用的是任何其他Apache库,这些库都附带了ApacheCommons日志的编译依赖项<代码>编译(“org.apache.commons:commons-vfs2:1.4”){exclude module:'commons logging'}