我有一个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=""><?xml version="1.0" encoding="UTF-8"?>
<my_xml version="1.2" query_date="">
<add_transaction_type description="Contributions" name="Contribution" type="C"/>
<add_transaction_type description="Transfer In" name="Xfr or R/O In" type="X"/>
</my_xml>
</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><?xml version="1.0" encoding="UTF-8"?>
<myxml version="1.2" query_date="">
<add_transaction_type description="Contributions" name="Contribution" type="C"/>
<add_transaction_type description="Administration Fee" name="Fee:AUM" type="U"/>
</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库.
端点基本上定义如下: …