2017-08-22 94 views
8

我有下面的XML作为我的JAX-WS Web服务响应:如何更改响应XML在JAX-WS

<soapenv:Envelope> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <QueryRBTReqMsgResponse> 
      <QueryRBTRspMsg> 
       <resultHeader> 
        <resultCode>0</resultCode> 
        <resultDesc>Successful</resultDesc> 
       </resultHeader> 
       <!--Optional:--> 
       <QueryRBTResponse> 
        <part>1</part> 
       </QueryRBTResponse> 
      </QueryRBTRspMsg> 
     </QueryRBTReqMsgResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

但是这就是我想要的:

<soapenv:Envelope> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <QueryRBTRspMsg> 
      <resultHeader> 
       <resultCode>0</resultCode> 
       <resultDesc>Successful</resultDesc> 
      </resultHeader> 
      <!--Optional:--> 
      <QueryRBTResponse> 
       <part>1</part> 
      </QueryRBTResponse> 
     </QueryRBTRspMsg> 
    </soapenv:Body> 
</soapenv:Envelope> 

哪有我从我的回复中删除<QueryRBTReqMsgResponse>标记?我尝试了太多的改变,但他们都没有做这项工作!

+0

您如何生成此响应?您的服务的响应POJO如何?我猜它有QueryRBTReqMsgResponse作为根元素。 – mart

+0

这个响应由标准的Jax-Ws java库产生,并且没有Pojo。 –

+0

这是某处SOAP服务的响应。 JAX-WS只是一个API。您是否构建了返回此响应的服务? – mart

回答

3

最后我找到了解决方案。我们必须使用以下注释:

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)