我正在使用 JAXWS 生成 web 服务并使用 EndPoint.publish() 提供服务以及部署 war 文件,但是一旦它提供了 100 个请求,它就不会返回第 101 个响应。如何配置 JAXWS 将此计数更改为无限制?
编辑:找到解决方案,首先它与 JAXWS 无关,我很抱歉在这里发布它,在我的第一印象中,我认为问题出在 JAXWS 但经过深入探索和调试后,我发现我的持久层有问题(休眠)默认情况下,允许的最大会话数为 100。再次抱歉让你们认为这实际上没有意义。
我正在使用 JAXWS 生成 web 服务并使用 EndPoint.publish() 提供服务以及部署 war 文件,但是一旦它提供了 100 个请求,它就不会返回第 101 个响应。如何配置 JAXWS 将此计数更改为无限制?
编辑:找到解决方案,首先它与 JAXWS 无关,我很抱歉在这里发布它,在我的第一印象中,我认为问题出在 JAXWS 但经过深入探索和调试后,我发现我的持久层有问题(休眠)默认情况下,允许的最大会话数为 100。再次抱歉让你们认为这实际上没有意义。
在内部,线程池(Executor)用于处理请求。它的默认池大小设置为 100 个请求。创建 Endpoint 实例后,您可以通过 Endpoint#setExecutor(Executor) 轻松设置自己的ThreadPoolExecutor 。
这很奇怪,我没有成功重现您所描述的行为。
我快速创建了以下Hello
服务(使用我的 JDK 6 中的 JAX-WS RI 2.1.6):
import java.net.URL;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService()
public class Hello {
// Business method we want to expose as Web service operation
public String sayHello(String name) {
return "Hello " + name + "!";
}
public static void main(String[] args) throws Exception {
String address = "http://localhost:8080/HelloWebService/HelloService?WSDL";
URL wsdlURL = new URL(address + "?wsdl");
Endpoint ep = Endpoint.publish(address, new Hello());
}
}
然后,我设置了一个快速的 SoapUI 测试,它调用 hello 服务 110 次,以确保在main
方法运行时。下面是实际结果的截图:
替代文字 http://img404.imageshack.us/img404/5366/screenshotsoapui301.png
如您所见,测试运行良好,110 次(并非所有并发)调用出现 0 错误。
请提供一些代码来显示您在做什么,某处肯定存在差异(也许您正在运行高度并行化的请求,在这种情况下我没有测试相同的东西)。