我目前對我的應用程序使用Tomcat服務器,下面的代碼在pom.xml中給出了soap 1.2協議的SAAJ版本1.3。但是當我們將服務器遷移到websphere時,我得到如下錯誤。從TomcatWebsphere SAAJ版本問題
<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>
控制檯: 2013年10月11日11時12分51秒INFO SaajSoapMessageFactory:135 - 創建SAAJ 1.3的MessageFactory與SOAP 1.2協議 2013年10月11日11時12分51秒DEBUG SaajSoapMessageFactory:163 - 使用的MessageFactory類[com.sun.xml.internal.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl]
錯誤在WebSphere: 1的PropertyAccessException:org.springframework.beans.MethodInvocationExce ption:屬性'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版本。此外,我們使用的是WebSphere 6.1.23
是的。 WAS 6.x是非常古老的,過去的結束。事實上,如果WAS 7明年年底即將到來,我不會感到驚訝。你可能想考慮一個大版本的跳轉,並一直到8.x. –
是的,我打算通過IBM文檔6.1是非常OLD- [鏈接](http://www-01.ibm.com/support/docview.wss?uid=swg27005002) – Suresh
我收到了同樣的錯誤,當我部署使用IBM Java 7將應用程序應用於WAS 8.5.5。當我切換到IBM Java 6時,它可以正常工作 –