小弟用的是Xfire作为客户端调用webservice接口,在java的main方法调用时运行一切正常,为什么在Action里面调用就会出现异常(struts),以下是异常,它提示说java.lang.NoClassDefFoundError,可是我已经引入这个类的包了啊,我已经把能加入的包都给加进去了,客户端服务器是tomcat6.0,jdk1.6, 加入的jar文件有
commons-httpclient-3.0
jaxen-1.1-beta-9
org.codehaus.xfire.eclipse_1.0.2.xfire125
xbean-spring-2.8
xfire-aegis-1.2.6
xfire-annotations-1.2.6
xfire-core-1.2.6
xfire-java5-1.2.6
xfire-jaxb2-1.2.6
xfire-jaxws-1.2.6
xfire-jsr181-api-1.0-M1
xfire-spring-1.2.6
XmlSchema-1.1
报错信息为:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at com.dhc.framework.base.web.action.BaseAction.execute(BaseAction.java:108)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.dhc.framework.base.web.filter.OperateLogFilter.doFilter(OperateLogFilter.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.dhc.framework.base.web.filter.EncodingFilter.doFilter(EncodingFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ecside.filter.ECSideFilter.doFilter(ECSideFilter.java:198)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoClassDefFoundError: org/codehaus/xfire/aegis/type/TypeMappingRegistry
at com.dgdslr.expense.SapVoucher.voucherIF(SapVoucher.java:16)
at com.dhc.dslr.vou.voucherTra.web.VoucherTraAction.voucherIF(VoucherTraAction.java:165)
... 34 more
Caused by: java.lang.ClassNotFoundException: org.codehaus.xfire.aegis.type.TypeMappingRegistry
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 36 more
webservice

解决方案 »

  1.   

    org.codehaus.xfire.eclipse_1.0.2.xfire125 这个包看着好像1.2.5的和其他1.2.6的会不会冲突?
      

  2.   

    org.codehaus.xfire.aegis.type.TypeMappingRegistry
    这个类在xfire-aegis-1.2.6这个包里,我看你已经引入这个类了,提示没找到有可能是包有冲突,你在先Build Path里看看.
      

  3.   

    我工程里面有个axis.jar,它里面也包含TypeMappingRegistry这个类,不过我不能删除它,因为我的工程需要用到它啊,跪求高手解决啊
      

  4.   

    用了axis干嘛还要用xfire,直接axis用下去就好了嘛