如何从 webservice 响应对象中删除命名空间前缀

时间:2021-05-01 13:07:56

标签: soap jax-ws xml-namespaces java-ee-7

我得到了这个 wsdl,我 wsimport 为其生成类,然后 Î 开发了网络服务。

此时网络服务正在返回这样的信封:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns2:IReqResp xmlns:ns2="http://tmpuri.org"/>
        <ReqResult>
        ...
        </ReqResult>
        
    </ns2:IReqResp>
   </soap:Body>

</soap:Envelope>

但我需要它来删除 ns2 前缀: 替换这个:

<ns2:IReqResp xmlns:ns2="http://tmppuri.org"/>

<IReqResp xmlns="http://tmpuri.org"/>

我怎样才能做到这一点?我正在使用 JEE,jaxws。有没有办法参数化 wsimport 命令,以便按照我的意愿编组此响应?或者某种方式来参数化注释@Webservice,@ResponseWrapper? 我什至尝试更改 package-info 文件,但我最多只能更改前缀。

如果我自己使用 Jaxb marshaller,为了编组对象,我可以参数化编组的某些方面。但在这种情况下,我不能。

有人知道怎么做吗? 谢谢

0 个答案:

没有答案