在IBM WebSphere Application Server 9上与基于SOAP的Web服务进行交互时,我们面临一个问题。调用是通过部署在WAS 9.0和8.5.5.12上的EAR文件进行的。
以下是发生交互时生成的日志的堆栈跟踪:-
javax.xml.ws.soap.SOAPFaultException:java.lang.NullPointerException ** 在 org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.createSystemException(MethodMarshallerUtils.java:1363) 在 org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.demarshalFaultResponse(MethodMarshallerUtils.java:1089) 在 org.apache.axis2.jaxws.marshaller.impl.alt.DocLitBareMethodMarshaller.demarshalFaultResponse(DocLitBareMethodMarshaller.java:417) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultResponse(JAXWSProxyHandler.java:626) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:566) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:432) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:213) 位于com.sun.proxy。$ Proxy160.nameEnquiry(未知来源) com.nucleus.finnaxia.getAcctname.businessObject.service.SBSAIFTNameValidation.generateMessageForNIPS(SBSAIFTNameValidation.java:313)
nameEnquiry 是通过已部署的应用程序正在调用的SOAP操作。
通过SOAP UI尝试进行SOAP请求时,效果很好。
样品请求:
<soapenv:Envelope xmlns:tran="http://abcd.xyz.com/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<tran:nameEnquiryRequest xmlns:ns0="http://abcd.xyz.com/">
<submissionTime>2019-03-26T11:18:32.184+01:00</submissionTime>
<batchId>0123456789</batchId>
<interbankChannel>XYZ</interbankChannel>
<reqTranId>9876543210</reqTranId>
<nameEnquiryDetails>
<items>
<item>
<id>1234598765</id>
<sourceAcctNumber>000000000</sourceAcctNumber>
<destAcctNumber>1122334455</destAcctNumber>
<destAcctBankCode>090</destAcctBankCode>
</item>
</items>
</nameEnquiryDetails>
</tran:nameEnquiryRequest>
</soapenv:Body>
</soapenv:Envelope>
这里错过了什么?
与Weblogic Server 12C一起尝试并测试时,同一应用程序可以正常工作。
response = service.nameEnquiry(requestObj);
nameEnquiry是SOAP操作。 服务是服务对象(使用wsimport命令生成)
预期:它应该访问Web服务并返回响应。 实际:-它返回带有空指针异常的SOAPFault。