2011-11-21 175 views
3

当我在weblogic中部署我的web服务客户端应用程序时,出现以下错误。 [此应用程序一直没有在Tomcat中任何问题的工作。]weblogic.webservice.core.soap.MessageFactoryImpl无法转换为javax.xml.soap.MessageFactory

无法解析参考豆“saajSoapMessageFactory”,而 设置构造函数的参数;嵌套的异常是 org.springframework.beans.factory.BeanCreationException:错误 在类路径 资源[.../core/ws/ws-config.xml]中定义的名称为'saajSoapMessageFactory'的bean的创建:调用init方法 失败;嵌套的例外是 org.springframework.ws.soap.SoapMessageCreationException:无法创建 SAAJ的MessageFactory:无法为创建SOAP消息工厂: weblogic.webservice.core.soap.MessageFactoryImpl不能转换到 javax.xml.soap中。的MessageFactory;嵌套的例外是 javax.xml.soap.SOAPException:无法为 SOAP消息创建工厂:weblogic.webservice.core.soap.MessageFactoryImpl不能转换 到javax.xml.soap.MessageFactory

这里ws-config.xml中的bean定义

(bean id="saajSoapMessageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory") 

我试过搜索这个问题,但不幸找不到任何解决方案。我错过了什么在春季配置?有没有人遇到过这个问题?

回答

3

我还没有碰到过这样的 - 但有什么情况是,WebLogic使用它自己默认为MessageFactoryImpl

检查您的WebLogic启动日志,你会看到一些参数进行设置,如

javax.xml.rpc.ServiceFactory = weblogic.webservice.core.rpc.ServiceFactoryImpl 
javax.xml.soap.MessageFactory = weblogic.webservice.core.soap.MessageFactoryImpl 

您可以尝试2种选择(我不知道这会工作,尝试一下)

A)

在您的客户端,这些自己设定春节等同

System.setProperty("javax.xml.soap.MessageFactory",  "org.springframework.ws.soap.saaj.SaajSoapMessageFactory"); 
System.setProperty("javax.xml.rpc.ServiceFactory",  "** Spring version **"); 

B)通过你所需要的版本为-D参数中的startWebLogic.cmd

-Djavax.xml.soap.MessageFactory=org.springframework.ws.soap.saaj.SaajSoapMessageFactory

并加入SAAJ罐子到WebLogic类路径。

+1

在类路径中包含saaj jar(saaj-impl和saaj-api)帮助解决了这个问题。以前,我没有将这些jar作为WS客户端应用程序的一部分(部署在weblogic中),并且weblogic使用“weblogic.webservice.core.soap.MessageFactoryImpl”作为导致此问题的消息工厂。 – user1057653

相关问题