2

我有 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 访问它时却不行。

我已经为此失去了几天,并尝试了几乎所有我能做的事情..所以任何帮助都非常感激。

4

1 回答 1

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

希望这会有所帮助...

于 2012-05-08T23:26:47.643 回答