3

当我在 weblogic 中部署我的 web 服务客户端应用程序时,我遇到了以下错误。[此应用程序在 tomcat 中一直运行,没有任何问题。]

设置构造函数参数时无法解析对 bean '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")

我尝试搜索此问题,但遗憾的是找不到任何解决方案。我在春季配置中遗漏了什么吗?有没有人遇到过这个问题?

4

1 回答 1

3

我没有遇到过这个 - 但发生的事情是 Weblogic 使用它自己的 MessageFactoryImpl 的默认值

检查您的 weblogic 启动日志,您将看到一些参数设置,例如

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

您可以尝试 2 个选项(我不知道哪个可行,请尝试一下)

一种)

在您的客户端中,自己将这些设置为 Spring 等效项

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 jar 添加到 weblogic 类路径。

于 2011-11-21T12:18:52.900 回答