WebLogic 10.3.5에서 Spring WS2 및 JDOM2 웹 서비스 - 요청 요소 텍스트가 바인딩되지 않습니다.
-
12-12-2019 - |
문제
봄 WS 2 웹 서비스 (jdom2 요소를 매개 변수로 사용)를 배포 한 후 WebLogic 10.3.5 서버, 루트 요소의 하위 요소 - WICH는 주요 매개 변수입니다. 내 끝점 기능의 - 텍스트 콘텐츠를 포함하지 마십시오.
예 :
XML 요청 (전송됨)
<root foo="bar">
<doo>dat</doo>
</root>
.
jdom2 요소 구조 요청 (기능에 제시된 것처럼)
<root foo="bar">
<doo/>
</root>
.
이것은 Junit과 GlassFish Server에서 잘 작동합니다. WebLogic에 대한 특별한 구성은 아직 없습니다.
일부 WebLogic 라이브러리가 JDOM2 구현을 무시할 수 있음을 의심합니다. 그러나 Simililar 경험이 있다면 몇 가지 입력에 정말로 감사드립니다.
업데이트
jdom2 구현에 디버깅하는 동안, 텍스트는 DOMBuilder를 "weblogic.xml.saaj.textimpl"으로 입력합니다. JDOM은 텍스트를 추출 할 수 없습니다.
어쩌면 누군가에게 WebLogic 라이브러리를 예방하는 방법을 힌트가있는 것일 수도 있습니다. 응용 프로그램을 엉망으로 만들 때 ...?
(코멘트에도 감사 드리며)
해결책
SAAJ 메시지 공장을 Sun 구현으로 설정하여 문제를 해결했습니다.
maven 의존성을 사용하여
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>1.3.3</version><!-- or higher -->
</dependency>
.
스프링 구성에 추가 :
<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
<property name="messageFactory">
<bean class="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1_Impl"/>
</property>
</bean>
. 제휴하지 않습니다 StackOverflow