问题描述
JAVA调用WEBSERVICE出错,java类是直接用WSDL文件生成的。org.apache.axis.client.Call_call=createCall();_call.setOperation(_operations[0]);_call.setUseSOAPAction(true);_call.setSOAPActionURI("");_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);_call.setOperationName(newjavax.xml.namespace.QName("urn:synGsmOrder","synGsmOrder"));setRequestHeaders(_call);setAttachments(_call);java.lang.Object_resp=_call.invoke(newjava.lang.Object[]{gsmOrderIn});红色这行直接抛错……无奈了,各位大虾帮指点下。AxisFaultfaultCode:{http://schemas.xmlsoap.org/soap/envelope/}Server.userExceptionfaultSubcode:faultString:java.lang.NullPointerExceptionfaultActor:faultNode:faultDetail:{http://xml.apache.org/axis/}hostname:HB-BSS-APPjava.lang.NullPointerExceptionatorg.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)atorg.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)atorg.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)atweblogic.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:585)atweblogic.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespaceBinder.java:898)atweblogic.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBinder.java:644)atweblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1008)atweblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1469)atweblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)atweblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)atweblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)atweblogic.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)atweblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)atweblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)atweblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:152)atjavax.xml.parsers.SAXParser.parse(SAXParser.java:345)atorg.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)atorg.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)atorg.apache.axis.Message.getSOAPEnvelope(Message.java:435)atorg.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)atorg.apache.axis.client.AxisClient.invoke(AxisClient.java:206)atorg.apache.axis.client.Call.invokeEngine(Call.java:2784)atorg.apache.axis.client.Call.invoke(Call.java:2767)atorg.apache.axis.client.Call.invoke(Call.java:2443)atorg.apache.axis.client.Call.invoke(Call.java:2366)atorg.apache.axis.client.Call.invoke(Call.java:1812)
解决方案
解决方案二:
1.看看发布的webservice接口是否有问题,如果是用myeclipse自动生成的类,应该没什么问题的。2.看看你客户端调用的方法是否少参数,因为报空指针了
解决方案三:
2楼正解如果2楼指出的问题没有发生,核对你axis的版本是否与服务端有很大差别,有时候版本问题也会出空指针
解决方案四:
这个异常比较好解决,就是你把所有要用的值给打印出来,看哪个为NULL,设个断点也好,自己调试一下