В настоящее время я использую сервер Tomcat для своего приложения, и приведенный ниже код в pom.xml дает мне SAAJ версии 1.3 для протокола soap 1.2. Но когда мы переносим сервер в 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 INFO SaajSoapMessageFactory: 135 - Создание SAAJ 1.3 MessageFactory с протоколом SOAP 1.2 2013-10-11 11:12:51 ОТЛАДКА SaajSoapMessageFactory: 163 - Использование класса MessageFactory [com.sun.xml.internal.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl]
Ошибка в веб-сфере: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: свойство soapVersion вызвало исключение; вложенное исключение - java.lang.IllegalArgumentException: SAAJ 1.1 и 1.2 поддерживают только SOAP 1.1.
Я удалил файлы jar, сгенерированные maven (SaajSoapMessageFactory), и из этого класса выдается ошибка.
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
1 ответ
Я только что заметил, что приложение, которое мы создаем в tomcat, использует JDK1.6, но websphere 6.1 поддерживает только jdk1.5.
У нас есть для websphere7. 6.x не поддерживает jdk1.6
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.