问题描述
哪位大哥大姐帮忙解决下~~弄了2个星期了始终不行。现在环境是在公安局智能交通网上调用车管所数据,由此用到webservice。测试结果如下:用soap-ui工具传递相应参数能返回车辆相应信息。在IE浏览器http://*/FBTT_IBPS/services/FbttService?wsdl没有问题能返回文件。<?xmlversion='1.0'encoding='UTF-8'?><wsdl:definitionsname="FbttService"targetNamespace="http://impl.server.webservice.bussiness.fbtt.com/"xmlns:ns1="http://server.webservice.bussiness.fbtt.com/"xmlns:ns2="http://cxf.apache.org/bindings/xformat"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:tns="http://impl.server.webservice.bussiness.fbtt.com/"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><wsdl:importlocation="http://*/FBTT_IBPS/services/FbttService?wsdl=IFbttService.wsdl"namespace="http://server.webservice.bussiness.fbtt.com/"></wsdl:import><wsdl:bindingname="FbttServiceSoapBinding"type="ns1:IFbttService"><soap:bindingstyle="document"transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operationname="ITMSService"><soap:operationsoapAction=""style="document"/><wsdl:inputname="ITMSService"><soap:bodyuse="literal"/></wsdl:input><wsdl:outputname="ITMSServiceResponse"><soap:bodyuse="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:servicename="FbttService"><wsdl:portbinding="tns:FbttServiceSoapBinding"name="FbttServiceImplPort"><soap:addresslocation="http://*/FBTT_IBPS/services/FbttService"/></wsdl:port></wsdl:service></wsdl:definitions>目前存在问题就是在程序中始终不行。访问方式1:用的xfire方式Clientclient=newClient(newURL("http://*/FBTT_IBPS/services/FbttService?wsdl"));程序执行到client就报错,还没到传参数的地方。java.lang.NullPointerExceptionatcom.ibm.wsdl.xml.WSDLReaderImpl.parseImport(UnknownSource)atcom.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(UnknownSource)atcom.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(UnknownSource)atcom.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(UnknownSource)atcom.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(UnknownSource)atcom.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(UnknownSource)atorg.codehaus.xfire.client.Client.<init>(Client.java:235)atorg.codehaus.xfire.client.Client.<init>(Client.java:246)atcom.client.HelloWebService.main(HelloWebService.java:19)访问方式2:用的axis方式Stringurl="http://*/FBTT_IBPS/services/FbttService?wsdl";Serviceservice=newService参数代码略过Callcall=(Call)service.createCall();call.setTargetEndpointAddress(url);call.setOperationName("ITMSService");Stringresult=(String)call.invoke(newObject[]{参数数组忽略这里不写});然后程序执行到这步后result返回为""没有数据。
解决方案
解决方案二:
空指针异常有什么好纠结的。debug下,看哪里开始空。
解决方案三:
话说xfire已经落伍了,现在都用cxf了,行xfire在2007年就停止更新了。
解决方案四:
空指针就是用debug断点到Clientclient=newClient(newURL("http://*/FBTT_IBPS/services/FbttService?wsdl"));后说client为空。。
解决方案五:
newURL("http://*/FBTT_IBPS/services/FbttService?wsdl")这里的*指什么?去掉?wsdl看下
解决方案六:
~我只是把IP给屏蔽掉了而已。。就是IP地址+端口。
解决方案七:
http://*/FBTT_IBPS/services/FbttService?wsdl直接这样能访问不?
解决方案八:
可以的~用soap-UI工具测试出来也与数据~
解决方案九:
URLurl=newURL(wsdl);HttpURLConnectionhttpConnection=(HttpURLConnection)url.openConnection();httpConnection.connect();Clientclient=newClient(httpConnection.getInputStream(),null);这样看下有没有内容
解决方案十:
还是一样的结果null指针,我在想是不是车管所那边的服务端做了什么限制。但是我用soap-ui工具能测出数据。。所以才奇怪。
解决方案十一:
那可能是权限的问题了。防火墙,杀毒系统都关闭试下……
解决方案十二:
车管所那边的我们没法控制~我们客户端这边的电脑都关了的。。应该和这些没关系的,用工具都能调试出来,那就应该是代码问题了,我在试试用其他方式调调看。先谢谢你了。
解决方案十三:
楼主有没有测出是什么问题呢,我也遇到了同样的问题了
解决方案十四:
楼主有没有测出是什么问题呢,我也遇到了同样的问题了
解决方案十五:
是不是超时了,设置超时试下