我的目标是控制/格式化JAX-RPC Web服务响应。 到目前为止,我所做的一切使我获得了“新回应”。
但它必须与“旧响应”匹配。欢迎使用任何与Java或Weblogic 12c(12.2.1.3.0)相关的解决方案。 (之后有更多详细信息)
在两种情况下,被调用的WebMethod返回一个自定义类型对象“ Person”,在“旧响应”中有对它的引用,但我的“新响应”没有它。 “新回复”:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<env:Header/>
<env:Body>
<m:GetUserInfoServiceResponse xmlns:m="http://example.org">
<result>
<java:network xmlns:java="java:my.package">intranet</java:network>
<java:area xmlns:java="java:my.package">ABC</java:area>
<java:defaultcat xmlns:java="java:my.package" href="#i4"/>
<java:code xmlns:java="java:my.package">6606</java:code>
</result>
</m:GetUserInfoServiceResponse>
<xs:string id="i4"/>
</env:Body>
</env:Envelope>
“旧回复”:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<m:GetUserInfoServiceResponse xmlns:m="http://example.org">
<result xmlns:n1="java:my.package"
xsi:type="n1:Person">
<network xsi:type="xsd:string">intranet</network>
<area xsi:type="xsd:string">ABC</area>
<defaultcat href="#ID_4">
</defaultcat>
<code xsi:type="xsd:string">6606</code>
</result>
</m:GetUserInfoServiceResponse>
<xsd:string xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:type="xsd:string"
id="ID_4">
</xsd:string>
</env:Body>
</env:Envelope>
详细信息:
我正在维护几个Web服务,这意味着升级涉及的技术。就像将Java 1.4升级到1.8,将WebLogic 8.1升级到12c ... 在这种情况下,我还要重新编码几个使用EJB和ant任务“ wsgen”和“ rpcservices”实现的java RPC Web服务。
这些年来,很难跟踪那里有多少客户以及他们在哪里...因此改变客户方已成为不可能。因此,我的问题。
我所做的事情(使用Eclipse,webLogic工具插件,ANT):