2013-10-11 4 views
1

현재 내 응용 프로그램에 Tomcat 서버를 사용하고 있으며, pom.xml의 아래 코드는 SOAP 1.2 버전 용 SAAJ 버전 1.3을 제공합니다. 그러나 서버를 websphere로 마이그레이션 할 때 아래와 같은 오류가 발생합니다. 바람둥이에서Websphere 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초 정보 SaajSoapMessageFactory : 135 - SOAP 1.2 프로토콜과 만들기 SAAJ 1.3의 MessageFactory 2013년 10월 11일 11시 12분 51초 DEBUG SaajSoapMessageFactory : 163 - MessageFactory의 클래스 [com.sun.xml.internal.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl] 스피어에서

오류 사용 : PropertyAccessException 1 : 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

답변

0

Tomcat에서 빌드 한 응용 프로그램은 JDK1.6을 사용하고 있지만 Websphere 6.1은 jdk1.5 만 지원한다는 것을 눈치 챘습니다.

우리는 websphere7을 가져야합니다. 6.x는 지원하지 않습니다. jdk1.6

+0

예. WAS 6.x는 매우 오래되었고 인생이 끝났습니다. 사실, WAS 7이 내년에 끝나면 나에게 놀라지 않을 것입니다. 큰 버전 점프를 고려하여 최대 8.x까지 얻을 수 있습니다. –

+0

예 ibm docs 6.1은 매우 오래된 것입니다. [링크] (http://www-01.ibm.com/support/docview.wss?uid=swg27005002) – Suresh

+0

배포 할 때 동일한 오류가 나타납니다. IBM java 7로 WAS 8.5.5 로의 애플리케이션. IBM Java 6로 전환하면 어떤 제안 사항이든 잘 동작한다. –