【问题标题】:Runtime Error after exporting a Web Service to a different environment将 Web 服务导出到其他环境后出现运行时错误
【发布时间】:2011-11-07 17:04:15
【问题描述】:

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

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

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

我最大的问题是为什么我在导出项目之前没有收到任何错误。我在想这可能是 JRE 或编译器的问题,但它们在两个平台上都是相同的。我将不胜感激。

【问题讨论】:

  • 我猜你这里有版本冲突。您是否提供了自己的 jbossws 库版本、jboss-jaxrpc.jar 或 javaee-api-*.jar?
  • 正是我的想法。两个环境的库应该是相同的,但我会检查以确保并立即返回。
  • 这就是问题所在,在我确定库相同之后它就消失了。
  • 那我会添加一个答案。

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多