小编Pat*_*era的帖子

JAX-WS端点仅部分转义XML String

我有一个JAX-WS端点,其中包含许多方法,这些方法都返回转换为String的XML文档.

这已经在Sun Java System Application Server 9.1 Update 2上运行了一段时间,但需要部署到新服务器.

它被部署到Glassfish 3.0.1没有任何问题,除了一个小问题.原始响应示例摘录:

<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:getTransactionTypesResponse xmlns:ns2="http://myns.com.au/">
      <return xmlns="">&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;my_xml version="1.2" query_date=""&gt;
  &lt;add_transaction_type description="Contributions" name="Contribution" type="C"/&gt;
  &lt;add_transaction_type description="Transfer In" name="Xfr or R/O In" type="X"/&gt;
&lt;/my_xml&gt;
      </return>
    </ns2:getTransactionTypesResponse>
  </S:Body>
</S:Envelope>
Run Code Online (Sandbox Code Playgroud)

在新服务器上,它返回:

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:getTransactionTypesResponse xmlns:ns2="http://myns.com.au/">
      <return>&lt;?xml version="1.0" encoding="UTF-8"?>

&lt;myxml version="1.2" query_date="">
  &lt;add_transaction_type description="Contributions" name="Contribution" type="C"/>
  &lt;add_transaction_type description="Administration Fee" name="Fee:AUM" type="U"/>
&lt;/my_xml>
      </return>
    </ns2:getTransactionTypesResponse>
  </S:Body>
</S:Envelope>
Run Code Online (Sandbox Code Playgroud)

几乎完全相同但只有开口尖括号被转义,而不是关闭括号.

我已使用直接HTTP POST请求对此进行了测试,因此我知道它没有受到任何客户端代码的破坏.

我再次将服务器升级到Glassfish 3.1,认为包含的webservice库存在问题,但没有运气.我的应用程序完全依赖于glassfish中的webservice支持 - 它不包含任何自己的WS或XML库.

端点基本上定义如下: …

java xml web-services escaping java-metro-framework

6
推荐指数
1
解决办法
3760
查看次数

标签 统计

escaping ×1

java ×1

java-metro-framework ×1

web-services ×1

xml ×1