问一个Web service的问题

wenly0561010 2010-04-16 12:36:53

客户端调用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"));
...全文
152 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenly0561010 2010-04-16
  • 打赏
  • 举报
回复
客户端调用方法是这样的:
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"));
生活 2010-04-16
  • 打赏
  • 举报
回复
是安全线程的关系
你参考下他的解决方法
http://www.javaeye.com/problems/35753

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧