JAXWS只提供100个并发请求,如何配置JAXWS以将其更改为无限制?

时间:2009-11-12 08:57:44

标签: java web-services jax-ws

我正在使用JAXWS生成Web服务并使用EndPoint.publish()提供服务以及部署war文件,但是只要它提供100个请求就不会返回101st 响应。如何配置JAXWS以将此计数更改为无限制?

编辑:解决方案发现,首先它与JAXWS无关,我很抱歉在这里发布,在我的第一印象中我认为问题在于JAXWS,但经过深入探索和调试后,我发现我的持久层问题(Hibernate)默认情况下允许的最大会话数为100。再次抱歉让你们想到哪些实际上没有意义。

2 个答案:

答案 0 :(得分:3)

在内部,线程池(Executor)用于处理请求。它的默认池大小设置为100个请求。创建Endpoint实例后,您可以通过Endpoint#setExecutor(Executor)轻松设置自己的ThreadPoolExecutor

答案 1 :(得分:2)

这非常奇怪,我没有成功重现你所描述的行为。

我已经快速创建了以下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方法正在运行。下面是实际结果的屏幕截图:

alt text http://img404.imageshack.us/img404/5366/screenshotsoapui301.png

正如您所看到的,测试运行良好,在110(并非所有并发)调用上出现0错误。

请提供一些显示您正在做什么的代码,某处必须存在差异(也许您正在运行大量并行化的请求,在这种情况下我不会测试同样的事情)。