新人小问题。调用webservice报错了。跪求解决方法 就80分了全送了
刚学java,想调用一个webservice.用的是axis2
代码很简单
public String ValidateLogin(String userName, String passWord)
throws AxisFault {
RPCServiceClient client = new RPCServiceClient();
Options options = client.getOptions();
EndpointReference reference = new EndpointReference(
"http://test.com/login.asmx?WSDL"); //这个wsdl是用.NET写的,很简单。没问题,浏览器能调用
options.setAction("http://tempuri.org/ValidateLogin");
options.setTo(reference);
// 制定参数值 传两个参数过去
Object[] params = new Object[] { userName, passWord };
// 制定方法返回值
Class[] classes = new Class[] { String.class };
// 获取调用方法的命名空间
QName funNamespace = new QName("http://tempuri.org/ValidateLogin");
Object content = client.invokeBlocking(funNamespace, params, classes)[0]; //到这时就不行了
return content.toString();
}
现在提示
type Exception report
message org.apache.axis2.AxisFault: Connection timed out: connect
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: org.apache.axis2.AxisFault: Connection timed out: connect
org.apache.jasper.servlet.JspServletWrapper.handle
JspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
------解决方案--------------------QName funNamespace = new QName("http://tempuri.org/ValidateLogin");
这个Namespace不可能是正确的。正确的应该是"http://tempuri.org/"
EndpointReference reference = new EndpointReference("http://test.com/login.asmx?WSDL");
看完这个我收回上面的话的后半句,是什么你自己去调试把。
------解决方案--------------------ie 里面看看 空间 和 wsdl 的具体地址
------解决方案--------------------QName funNamespace = new QName("http://tempuri.org/ValidateLogin");改为:
QName funNamespace = new QName("http://tempuri.org/",“ValidateLogin”);
------解决方案--------------------地址
try {
String endpoint = "http://www.webxml.com.cn/WebServices/WeatherWS.asmx";
Service service = new Service();
Call call;
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://WebXml.com.cn/","getWeather"));
call.setReturnClass(java.lang.String[].class);
call.addParam