客户端调用Web Service,服务端程序需要运行较长时间(10分钟左右),结果服务器端
执行完以后抛出异常:java.io.IOException:Stream closed
请问有人碰到过这个问题么?怎么解决呢?谢谢!附测试代码
服务端:
package plg.paper.ws;import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;@SOAPBinding(parameterStyle = ParameterStyle.BARE)
@WebService(targetNamespace = "http://www.wenly.ws", serviceName =
"helloService", name = "sayHello")
public class Hello {
@WebMethod
public String sayHello(String name) {
public String sayHello(String name) {
try {
// Wait 10 minutes
Thread.sleep(1000 * 60 * 10);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("[server]hello, " + name);
return "hello, " + name;
}
}客户端调用方法:
HelloService helloService = new HelloService();
SayHello sayHelloPort = helloService.getSayHelloPort();
((BindingProvider) sayHelloPort).getRequestContext().put(
BindingProviderProperties.CONNECT_TIMEOUT, 1000 * 60 * 100);
((BindingProvider) sayHelloPort).getRequestContext().put(
BindingProviderProperties.REQUEST_TIMEOUT, 1000 * 11);
System.out.println(sayHelloPort.sayHello("wenly"));
HelloService helloService = new HelloService();
SayHello sayHelloPort = helloService.getSayHelloPort();
((BindingProvider) sayHelloPort).getRequestContext().put(
BindingProviderProperties.CONNECT_TIMEOUT, 1000 * 60 * 100);
((BindingProvider) sayHelloPort).getRequestContext().put(
BindingProviderProperties.REQUEST_TIMEOUT, 1000 * 60 * 100);
System.out.println(sayHelloPort.sayHello("wenly"));
你参考下他的解决方法
http://www.javaeye.com/problems/35753