如何编辑(格式化)SOAP响应JAX-RPC?

时间:2019-01-23 12:52:18

标签: java web-services soap weblogic12c jax-rpc

我的目标是控制/格式化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):

  1. 新项目-> WebLogic-> Web服务项目
  2. 获取WSDL的
  3. 使用ANT任务“ wsdlc”创建源文件
  4. 修改wsImpl.java文件和项目(实现我的代码,添加所有需要的Lib和类构造器...)
  5. 使用ANT“ jwsc”->“ jws”将Web服务编译为war文件
  6. 创建.ear文件(可选步骤,我认为是^^)
  7. 部署

0 个答案:

没有答案