java Websphere SAAJ版本问题
我目前正在为我的应用程序使用Tomcat服务器,并在pom中使用以下代码。xml为我提供了适用于SOAP1.2协议的SAAJ版本1.3。但是当我们将服务器迁移到websphere时,我得到的错误如下
<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
<property name="soapVersion">
<util:constant static-field="org.springframework.ws.soap.SoapVersion.SOAP_12"/>
</property>
</bean>
来自tomcat的控制台: 2013-10-11 11:12:51信息SaajSoapMessageFactory:135-使用SOAP 1.2协议创建SAAJ 1.3消息工厂 2013-10-11 11:12:51调试SaajSoapMessageFactory:163-使用MessageFactory类[com.sun.xml.internal.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl]
websphere中的错误: PropertyAccessException 1:org。springframework。豆。MethodInvocationException:属性“soapVersion”引发异常;嵌套的异常是java。lang.IllegalArgumentException:SAAJ 1.1和1.2仅支持SOAP 1.1
我已经查看了maven(SaajSoapMessageFactory)生成的jar文件,这个类抛出了错误
try {
if (SaajUtils.getSaajVersion() >= SaajUtils.SAAJ_13) {
if (!StringUtils.hasLength(messageFactoryProtocol)) {
messageFactoryProtocol = SOAPConstants.SOAP_1_1_PROTOCOL;
}
if (logger.isInfoEnabled()) {
logger.info("Creating SAAJ 1.3 MessageFactory with " + messageFactoryProtocol);
}
messageFactory = MessageFactory.newInstance(messageFactoryProtocol);
}
else if (SaajUtils.getSaajVersion() == SaajUtils.SAAJ_12) {
logger.info("Creating SAAJ 1.2 MessageFactory");
messageFactory = MessageFactory.newInstance();
}
else if (SaajUtils.getSaajVersion() == SaajUtils.SAAJ_11) {
logger.info("Creating SAAJ 1.1 MessageFactory");
messageFactory = MessageFactory.newInstance();
}
**else {
**throw new IllegalStateException(
"SaajSoapMessageFactory requires SAAJ 1.1, which was not found on the classpath");**
}**
}
请说明为什么tomcat工作正常,而websphere没有获得正确的SAAJ版本。此外,我们正在使用WebSphere6.1.23
# 1 楼答案
我刚刚注意到我们在tomcat中构建的应用程序使用的是JDK1。但是WebSphere6.1只支持jdk1。五,
我们得去websphere7。6.x不支持jdk1。六,