将Web Service导出到其他环境后出现运行时错误

时间:2011-11-07 17:04:16

标签: java web-services jsp windows-server-2008

我已经在我的Eclipse IDE上开发了一段时间的Web服务,在我完成它之后,我将它导出到运行Windows Server 2008 R2的服务器上。成功部署后,我遇到运行时错误:

16:03:39,358 ERROR [STDERR] java.lang.ClassCastException:org.jboss.ws.core.jaxrpc.client.ServiceFactoryImpl无法强制转换为javax.xml.rpc.ServiceFactory 16:03:39,358 javax.xml.rpc.ServiceFactory.newInstance(ServiceFactory.java:63)中的错误[STDERR] 16:03:39,358 org.apache.jsp.GetDocuments_jsp._jspService(GetDocuments_jsp.java:86)中的错误[STDERR] 16:03:39,358 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)中的错误[STDERR] 16:03:39,358 javax.servlet.http.HttpServlet.service中的错误[STDERR](HttpServlet.java:717) 16:03:39,358 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)中的错误[STDERR] 16:03:39,358 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)中的错误[STDERR] 16:03:39,358 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)中的错误[STDERR] 16:03:39,358 javax.servlet.http.HttpServlet.service中的错误[STDERR](HttpServlet.java:717) 16:03:39,358 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 16:03:39,358 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 16:03:39,358 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 16:03:39,358 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 16:03:39,358 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 16:03:39,358错误[STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) 16:03:39,358 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 16:03:39,358 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183) 16:03:39,358 org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)中的错误[STDERR] 16:03:39,358 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 16:03:39,358 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 16:03:39,358错误[STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 16:03:39,358 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)的错误[STDERR] 16:03:39,358 org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)中的错误[STDERR] 16:03:39,358错误[STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 16:03:39,358 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 16:03:39,358 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 16:03:39,358 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:599) 16:03:39,358 org.apache.tomcat.util.net.JIoEndpoint错误[STDERR] $ Worker.run(JIoEndpoint.java:451) 16:03:39,358 java.lang.Thread.run(未知来源)的错误[STDERR]

当我尝试访问Web方法时会发生这种情况,在此示例中,GetDocuments是Web方法。客户端使用JSP创建绑定存根以与服务进行通信。这些存根由Eclipse IDE自动生成。我不太了解Web服务或者如何进一步研究这些问题,因为错误并没有指向我项目中的任何真正的类。

我的重要问题是,在我导出项目之前,我没有收到任何错误。我认为这可能是THRE或编译器的问题,但它们在两个平台上都是相同的。我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:0)

javax.xml.rpc.ServiceFactory很可能包含在jboss-jaxrpc.jarjavaee-api-*.jar中(*为版本)。

org.jboss.ws.core.jaxrpc.client.ServiceFactoryImpl包含在jbossws库中。

因此,您必须确保您的JBoss使用这些库的兼容版本,这在您的eclipse设置中似乎就是这种情况。

对于未来的读者:解决方案是确保JBoss使用的库与Eclipse使用的库相匹配,这些库显然是兼容的版本。