Apache Web服务Soap获取读取超时异常
我正在尝试使用ApacheAxis2和Tomcat6通过一个客户端WSDL文件创建soap web服务客户端 我成功地生成了客户机,但当我调用方法来获取数据时,我得到了一个错误 WSDL位置: 错误: 无法将邮件发送到url[ java.net.SocketTimeoutException:读取超时 我的疑问如下:Apache Web服务Soap获取读取超时异常,apache,web-services,soap,soapui,axis2,Apache,Web Services,Soap,Soapui,Axis2,我正在尝试使用ApacheAxis2和Tomcat6通过一个客户端WSDL文件创建soap web服务客户端 我成功地生成了客户机,但当我调用方法来获取数据时,我得到了一个错误 WSDL位置: 错误: 无法将邮件发送到url[ java.net.SocketTimeoutException:读取超时 我的疑问如下: 我们使用GET或POST方法发送请求,我们如何在SOAP web服务中知道这些方法 上面提到的错误是什么时候出现的 除了ApacheAxis2之外,我们还可以为这个WSDL文件使用什
您可能需要检查骨架端需要多长时间。我以前做过SOAP,也遇到过同样的问题。下面的代码可能会对您有所帮助
private HttpURLConnection getConnection(String endPoint) {
try {
URL url = new URL(endPoint);
URLConnection connection = url.openConnection();
connection.setConnectTimeout(20000); // 20 sec connection timeout
connection.setReadTimeout(60000); // 60 sec read timeout
HttpURLConnection httpConnection = (HttpURLConnection) connection;
httpConnection.setRequestMethod("POST");
OutputStream out = httpConnection.getOutputStream();
return httpConnection;
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
但是,请确保您的服务(框架)不会花费太多时间来处理请求。您可以使用SoapUI确定返回响应所花费的时间。相应地,您可以设置超时值
以下是你的疑问的答案:
1.您可以在HttpURLConnection对象中设置POST/GET
2.如果连接长时间处于空闲状态且服务未返回任何结果,则可能会出现指定的错误。请使用SoapUI检查服务的回复
3.wsdl2java和带有ApacheAxis2的java2wsdl是一个很好的选择,xmlbeans还有一个内置的转换器,使用起来非常方便