Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXWS只服务100个并发请求,如何配置JAXWS以将其更改为无限?_Java_Web Services_Jax Ws - Fatal编程技术网

Java JAXWS只服务100个并发请求,如何配置JAXWS以将其更改为无限?

Java JAXWS只服务100个并发请求,如何配置JAXWS以将其更改为无限?,java,web-services,jax-ws,Java,Web Services,Jax Ws,我正在使用JAXWS生成Web服务,并使用EndPoint.publish()提供服务,以及部署war文件,但一旦它处理了100个请求,它就不会返回101st 回答如何配置JAXWS将此计数更改为无限制 编辑:找到了解决方案,首先,它与JAXWS无关,我很抱歉将其发布在这里,在我的第一印象中,我认为问题在于JAXWS,但在深入探索和调试之后,我发现我的持久层(Hibernate)存在问题,默认情况下允许的最大会话数为100。再次抱歉让你们思考,这实际上毫无意义。这太奇怪了,我没有成功重现你们描述

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


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

这太奇怪了,我没有成功重现你们描述的行为

我已经快速创建了以下
Hello
服务(使用来自JDK 6的JAX-WS RI 2.1.6):

然后,我设置了一个快速的SoapUI测试,在
main
方法运行时调用hello服务110次。下面是实际结果的屏幕截图:

如您所见,测试运行良好,在110次(并非所有并发)调用上出现0错误


请提供一些代码来说明您正在做什么,一定有什么不同之处(可能您正在运行高度并行化的请求,在这种情况下,我不会测试相同的东西)。

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

请列出源代码,以获得显示此行为的最小示例。您使用的容器是什么?您是指从容器启动时起100个(连续)请求;或者它不能提供超过100个并发请求?@Karl OP使用的是Java Endoint类(),所以他使用的是Java 6I的嵌入式服务器。我怀疑这一点(但希望OP确认他所说的是并行请求),但是,对于我的文化,它在哪里被记录?我在javadoc中找不到这方面的任何提及。它记录在端点javadoc()页面顶部的类型注释中。100线程限制没有记录。但是你可以通过让执行者来查找它,将它转换为它的类型。它必须是ThreadPoolExecutor,核心池大小为25,最大为100。我从来没有查过;)
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());
    }

}