将xml SOAPUI响应转换为Java Object

时间:2014-09-12 09:20:11

标签: java xml web-services jaxb soapui

作为webservices的初学者,我正致力于从作为服务器的合作伙伴API使用Web服务,我开发了一个网关应用程序,将请求发送到我的API,作为客户端。我这样做是因为我的API中的方法与合作伙伴的API不匹配。我已经在SOAPUI上探索了合作伙伴的API并确定了我需要的方法,我在下面粘贴了这个方法:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hub="http://hub4api.cellulant.com/">
<soapenv:Header/>
<soapenv:Body>
  <hub:validateAccount>
     <credentials>
        <username>?</username>
        <password>?</password>
     </credentials>
     <packet>
        <!--1 or more repetitions:-->
        <Item>
           <serviceID>?</serviceID>
           <serviceCode>?</serviceCode>
           <accountNumber>?</accountNumber>
           <requestExtraData>?</requestExtraData>
        </Item>
     </packet>
  </hub:validateAccount>
</soapenv:Body>
</soapenv:Envelope>

在向指定的端点URL提交请求后,我得到以下回复

<S:<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
Body>
  <ns2:validateAccountResponse xmlns:ns2="http://hub4api.cellulant.com/">
     <return>
        <authStatus>
           <authStatusCode>131</authStatusCode>
           <authStatusDescription>Authentication was a success</authStatusDescription>
        </authStatus>
        <results>
           <Item>
              <statusCode>307</statusCode>
              <statusDescription>Account number provided is valid</statusDescription>
              <serviceID>130</serviceID>
              <serviceCode/>
              <accountNumber>XXXXXXXX</accountNumber>
              <active>yes</active>
              <responseExtraData>{"Currency":"XXX","VALUE":"33.54","DueDate":"2014-09-12T00:00:00+07:00"}</responseExtraData>
           </Item>
        </results>
     </return>
  </ns2:validateAccountResponse>
</S:Body>
</S:Envelope>

我想将响应转换为java对象并在我的GateWay中使用它,但我不知道如何去做。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用wsimport为特定(简单)Web服务生成Java代码。

查看http://docs.oracle.com/javase/7/docs/technotes/tools/share/wsimport.html