我正在使用marshalSendAndReceive发送请求和接收响应。对于大多数服务来说,它工作正常。但是一个请求的请求和响应格式如下:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:abc="http://maximus.com/assetworks/abc-web-services">
<soapenv:Header/>
<soapenv:Body>
<abc:getNextLinkTranxNum facade="CMS"/>
</soapenv:Body>
</soapenv:Envelope>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>40493</S:Body>
</S:Envelope>
现在,在我的代码中,我想获得40493的值。我的代码如下:
GetNextLinkTranxNum tranxNum = new GetNextLinkTranxNum();
tranxNum.setFacade(FacadeType.CMS);
WebServiceTemplate template = getWebServiceTemplate();
ClientInterceptor[] clientInterceptorsArr = new ClientInterceptor[1];
clientInterceptorsArr[0] = new CRSoapInterceptor(authorization);
JAXBElement response = (JAXBElement)template.marshalSendAndReceive(Constants.SOAP_URI, tranxNum);
当我检查时,我得到的是空值。
什么是正确的实现方式,以便我可以获得正确的tranx编号?