现在我有一个webservices服务器在SSH项目中加入webservices客户端,新建一个空类,写上main函数测试调用,没有问题可当我在action中调用的时候就报如下错误java.lang.NoClassDefFoundError: org/codehaus/xfire/jaxb2/JaxbTypeRegistry
at gov.csc.ems.util.sms.sendClient.create0(sendClient.java:57)
at gov.csc.ems.util.sms.sendClient.<init>(sendClient.java:26)
at gov.csc.ems.cbms.addressbook.commonaddr.actions.SmsSendAction.doExecute(SmsSendAction.java:45)
at com.thtf.ezone.ezframework.adapter.struts.ActionUtil.execute(ActionUtil.java:280)
at com.thtf.ezone.ezframework.adapter.struts.FWAction.execute(FWAction.java:176)
at com.thtf.ezone.ezframework.adapter.struts.FWRequestProcessor.processActionPerform(FWRequestProcessor.java:70)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at com.thtf.ezone.ezframework.servlet.FrontController.service(FrontController.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at gov.csc.ems.util.sys.priv.filter.LoginFilter.doFilter(LoginFilter.java:61)
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:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
是不是因为SSH框架的问题?因为main函数测试可过啊,求高人解答,在线等!

解决方案 »

  1.   

    客户端是通过wsdl用myeclipse6.5自动生成的调用代码
    sendClient client = new sendClient();
    sendPortType send = client.getsendHttpPort();
    send.send("111","aaa");在main函数里,能够正常执行
    在SSH框架中的action里,执行调用代码
    第一行sendClient client = new sendClient();就报错
    sendClient是自动生成的,具体抛出错误的是
    AnnotationServiceFactory asf = new AnnotationServiceFactory(new Jsr181WebAnnotations(), tm, new AegisBindingProvider(new JaxbTypeRegistry()));
    这一行
    main测试可过,SSH中的action过不了求解啊!
      

  2.   

    请问2楼,你说没有导入JAVA包,是什么包?
    我main函数可以过啊而且报错的这个类java.lang.NoClassDefFoundError: org/codehaus/xfire/jaxb2/JaxbTypeRegistry
    是jar包中的一个class,是存在的,可以找到,不理解为什么会这样啊