1

在 Weblogic 10.3.5 服务器上部署我的 Spring WS 2 Web 服务(使用 JDOM2 元素作为参数)后,根元素的子元素(这是我的端点函数的主要参数)从不包含文本内容。

例子:

请求 XML(发送时)

<root foo="bar">
  <doo>dat</doo>
</root>

请求 JDOM2 元素结构(如函数中所示)

<root foo="bar">
  <doo/>
</root>

这在 junit 和 glassfish 服务器上运行良好。weblogic 还没有特殊的配置。

我怀疑某些 weblogic 库可能会覆盖 JDOM2 实现,但如果您有类似的经历,我将非常感谢您提供一些意见。

更新

在调试 jdom2 实现时,我发现该文本以“weblogic.xml.saaj.TextImpl”的形式进入 DOMBuilder。JDom 无法提取文本。

也许有人提示如何防止 weblogic 库搞乱应用程序......?

(也感谢您的评论)

4

1 回答 1

2

我通过将 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>
于 2012-10-02T10:50:36.057 回答