SOAP Web服务客户端抛出SOAPFaultException:空指针异常

时间:2019-04-10 10:17:07

标签: nullpointerexception websphere soap-client webservice-client soapfault

在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一起尝试并测试时,同一应用程序可以正常工作。

  • 尝试将班级的加载方式从“家长优先”更改为“家长最后”
  • 尝试更改类路径,删除有冲突的jar(jaxb-api和jaxbimpl.jar)
  • 已尝试通过在JVM属性中将属性设置为true来禁用WAS的JAX-WS引擎。

response = service.nameEnquiry(requestObj);

nameEnquiry是SOAP操作。 服务是服务对象(使用wsimport命令生成)

预期:它应该访问Web服务并返回响应。     实际:-它返回带有空指针异常的SOAPFault。

0 个答案:

没有答案