webservice 联调问题,急200分求助
我用下面这个调用一个webservice,但这个webservice是调用dcn网的一个webservice,我现在要在公网调用我自己的这个webservice ,报了异常:
/** * 调用webservice * * @param url * URL地址 * @param method * 调用的方法名称 * @param paramName * 传递的参数名称 * @param param * 传递的参数 * @return 未解析的XML字符串 */ @Override public String callWebService(String url, String method, String paramName, String param) { String resultStr = null; logger.info("调用webservice 参数为:param=" + param); try { Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(url)); // 设置要调用哪个方法 //call.setOperationName(method); call.setOperationName(new QName("http://testspeed.com",method)); // 设置要传递的参数 call.addParameter(new QName("http://testspeed.com",paramName), XMLType.XSD_STRING, ParameterMode.IN); // 要返回的数据类型(自定义类型) call.setReturnType(XMLType.XSD_STRING);// (标准的类型) //call.setUseSOAPAction(true); //call.setSOAPActionURI(method); // 调用方法并传递参数 String result = (String) call.invoke(new Object[] { param }); if (logger.isDebugEnabled()) { logger.debug("调用webservice 返回结果为:" + result); } } catch (MalformedURLException e) {} catch (ServiceException e) {} catch (RemoteException e) {} return resultStr; }
/** * 根据客户端IP获得用户账号 * * @param param * XML格式的参数 * @return 未解析的XML报文 */ public String getAccessNum(String param) { // url String url = "http://25.24.29.18:8190/obs-auth/webservice/OBSInterfaceForAuth?wsdl"; // 要调用方法 String method = "AuthIP"; // 参数名称 String paramName = "AuthIPRequest"; // 请求webservice String result = callWebService(url, method, paramName, param); return result; } /** * 调用webservice * * @param url * URL地址 * @param method * 调用的方法名称 * @param paramName * 传递的参数名称 * @param param * 传递的参数 * @return 未解析的XML字符串 */ private String callWebService(String url, String method, String paramName, String param) { String resultStr = null; try { Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(url)); // 设置要调用哪个方法 call.setOperationName(method); // 设置要传递的参数 call.addParameter(paramName, XMLType.XSD_STRING, ParameterMode.IN); // 要返回的数据类型(自定义类型) call.setReturnType(XMLType.XSD_STRING);// (标准的类型) call.setUseSOAPAction(true); call.setSOAPActionURI(method); // 调用方法并传递参数 resultStr = (String) call.invoke(new Object[] { param }); } catch (MalformedURLException e) {} catch (ServiceException e) {} catch (RemoteException e) {} return resultStr; }
<?xml version="1.0" encoding="UTF-8"?><service name="fromCRM/user/CallUser"> <description> TestSpeed CallUser </description> <parameter name="ServiceClass"> com.testspeed.CallUser </parameter> <operation name="getAccessNum"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <operation name="getUserMess"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation></service>