有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我刚刚注意到我们在tomcat中构建的应用程序使用的是JDK1。但是WebSphere6.1只支持jdk1。五,

    我们得去websphere7。6.x不支持jdk1。六,