运行webservice客户端时发生java.lang.NoClassDefFoundError
问题描述:
当我运行一个使用eclipse,j2sdk1.4.2_13,axis1.0和WSDL文件创建的webservice客户端时,出现以下错误。运行webservice客户端时发生java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError: javax/servlet/ServletContext
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:1655)
at java.lang.Class.getDeclaredMethod(Class.java:1262)
at org.apache.commons.discovery.tools.ClassUtils.findPublicStaticMethod(ClassUtils.java:116)
at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:214)
at org.apache.axis.configuration.EngineConfigurationFactoryFinder.access$300(EngineConfigurationFactoryFinder.java:92)
at org.apache.axis.configuration.EngineConfigurationFactoryFinder$1.run(EngineConfigurationFactoryFinder.java:179)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:148)
at org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:204)
at org.apache.axis.client.Service.<init>(Service.java:111)
at com.example.xmlns.SOAPEventSourceBindingStub.<init>(SOAPEventSourceBindingStub.java:27)
at com.example.xmlns.SOAPEventSourceBindingStub.<init>(SOAPEventSourceBindingStub.java:17)
at com.example.xmlns.Cliente.main(Cliente.java:16)
Exception in thread "main"
客户是这样做的:SOAPEventSourceBindingStub stub = new SOAPEventSourceBindingStub();
public SOAPEventSourceBindingStub() throws org.apache.axis.AxisFault {
this(null); (this is line 17)
}
public SOAPEventSourceBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
this(service);
super.cachedEndpoint = endpointURL;
}
public SOAPEventSourceBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
if (service == null) {
super.service = new org.apache.axis.client.Service(); (this is line 27)
} else {
super.service = service;
}
...
答
您需要的servlet罐子在classpath或使用轴的最新版本。
注:AXIS 1.0甚至在客户端版本需要的servlet JAR文件或者你得到这个异常: (即将到来的1.1版本应该有这个固定)
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContext at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:1613) at java.lang.Class.getMethod0(Class.java:1732) at java.lang.Class.getDeclaredMethod(Class.java:1219) ...
资源:
答
与桌面应用程序有类似的问题。在Netbeans中,这突然出现了,尽管我只改变了无关的sql查询。有问题的软件包仍然在我的主要软件包中,尽管找不到。
解决了重命名有问题的类在我的主包(和重命名回来,如果需要)。还修正了命名标准偏差(一些类名的第一个字母是低的)。
你确定你没有错过一个图书馆吗?确保所有的库都在你的类路径中。 – 2010-09-02 14:19:30