问题描述
webservice是用的axis2写的。在本地测试调用没有问题。放到微信那边就会报Causedby:java.net.ConnectException:Connectiontimedoutatcom.qzp.servlet.CoreServlet.doPost(CoreServlet.java:64)atcom.qzp.service.CoreService.processRequest(CoreService.java:229)atcom.qzp.service.MyWebService.searchWXYJ(MyWebService.java:30)可是上述MyWebService.searchWXYJ(),自己在本地调用测试缺没有任何问题。到底是什么原因呢,求高手解决附上我的webservice的调用方法publicclassMyWebService{@SuppressWarnings({"rawtypes"})publicstaticStringsearchWXYJ(Stringsalary){//最好的返回值Stringy=null;try{//使用RPC方式调用WebServiceRPCServiceClientserviceClient=newRPCServiceClient();serviceClient.getOptions().setTimeOutInMilliSeconds(1000*60*3);Optionsoptions=serviceClient.getOptions();//指定调用WebService的URLEndpointReferencetargetEPR=newEndpointReference("http://61.132.89.94:4848/axis2/services/MyService");options.setTo(targetEPR);//指定getGreeting方法的入参值String[]yoursalary=newString[]{salary};//指定getGreeting方法返回值的数据类型的Class对象Class[]insurance=newClass[]{Float.class};//指定要调用的getGreeting方法及WSDL文件的命名空间QNameopAddEntry=newQName("http://ws.apache.org/axis2","getInsurance");//三个参数对应调用方法名、入参和返回值Floatwxyj=(Float)serviceClient.invokeBlocking(opAddEntry,yoursalary,insurance)[0];y=wxyj+"";returny;}catch(Exceptione){e.printStackTrace();y="连接超时";returny;}}publicstaticvoidmain(String[]args)throwsException{System.out.println(MyWebService.searchWXYJ("10000"));}
解决方案
解决方案二:
服务发布后,先用工具测试一下是否发布成功,再用你的程序去访问。