java - Websphere SAAJ 版本问题

标签 java spring tomcat websphere-6.1

我目前正在为我的应用程序使用 Tomcat 服务器,pom.xml 中的以下代码为我提供了适用于 soap 1.2 协议(protocol)的 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 协议(protocol)创建 SAAJ 1.3 MessageFactory 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.beans.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 版本。我们还使用 websphere 6.1.23

最佳答案

我刚刚注意到我们在 tomcat 中构建的应用程序使用的是 JDK1.6,但 websphere 6.1 仅支持 jdk1.5。

我们必须得到 websphere7。 6.x 不支持 jdk1.6

关于java - Websphere SAAJ 版本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321630/

相关文章:

java - sphinx语音识别延迟

java - 我无权访问代码中的图像(R.drawable ...)

arrays - 如何使用 spring JdbcTemplate 更新 postgresql 数组列?

Tomcat 服务器和域映射?

java - 如何在 Flux 中使用 zipWith 迭代元组?

java - OverlayLayout 不遵循焦点更改时的叠加顺序

java - Spring测试+DBUnit无法加载数据集

spring - 我如何获得所有登录用户的列表(通过 Spring Security)我的 Web 应用程序

java - 使用 Tomcat (Eclipse) 调试 GWT 应用程序

eclipse - Windows中的Tomcat webapps目录