【问题标题】:ServiceConstructionException when one web service connects to another web service当一个 Web 服务连接到另一个 Web 服务时出现 ServiceConstructionException
【发布时间】:2012-05-08 19:54:37
【问题描述】:

我有 2 个 Web 服务,当我用客户端测试它们时,它们都可以正常工作。但是当我尝试从另一个 Web 服务构建到一个 Web 服务的端口时,JBOSS 会爆炸,但有几个例外:

向监听器实例发送上下文初始化事件的异常 pt.ist.anacom.shared.security.SecurityInitListener 类: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: 失败 创建服务。

引起

org.apache.cxf.service.factory.ServiceConstructionException: 失败 创建服务。

引起

javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration 不能 转换为 org.apache.xerces.xni.parser.XMLParserConfiguration

原因:

java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration 不能 转换为 org.apache.xerces.xni.parser.XMLParserConfiguration

所以我有 web 服务 A 和 web 服务 B。我部署 web 服务 A,然后在我的 web 服务 B 的上下文侦听器上添加:

org.stubs.WebServiceA_Service service = new org.stubs.WebServiceA_Service(); // EXPLODES HERE
org.stubs.WebServiceA web = service.getWebServiceAPort(); //never runs this line, crashes before

这两个 Web 服务都是首先实现的(自下而上?),这意味着我定义了 WebService 类,部署它(JBOSS 自动生成 wsdl),然后我使用它。

当我从测试客户端访问 webserviceA 时,它工作正常,但当我尝试从 WebServiceB 访问它时却不行。

我已经为此浪费了几天时间,并且尝试了几乎所有我能做的事情。所以非常感谢任何帮助。

【问题讨论】:

  • 如果您将两种服务都部署到一个服务器实例,那么您尝试使用的服务可能在您尝试使用它时尚未完全部署。

标签: java web-services jboss wsdl


【解决方案1】:

在将 Web 服务部署到 WebLogic 服务器的多个案例中,我遇到了同样的问题,问题是服务器类路径上的 xerces 库与 Web 服务实例中包含的库之间的版本冲突。

在一种情况下,解决方案是避免将 xerces 库包含在 Web 服务应用程序中(如果恰好是您的引擎,则在 maven pom 中为 xerces 库指示范围“提供”)。另一方面,解决方案是使用(weblogic 的)过滤类加载器功能来指示服务器使用应用程序中包含的 xerces 库而不是服务器的实现。

根据您的问题,我在 jboss 中查找了此功能并找到了这篇文章:http://www.mastertheboss.com/jboss-application-server/223-solving-jboss-5-classloading-issues.html

希望这会有所帮助...

【讨论】:

  • 感谢您的回答,我忘记回复了,但这确实解决了我的问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多