Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 JAX-WS web服务线程模型_Java_Multithreading_Web Services_Thread Safety_Jax Ws - Fatal编程技术网

Java JAX-WS web服务线程模型

Java JAX-WS web服务线程模型,java,multithreading,web-services,thread-safety,jax-ws,Java,Multithreading,Web Services,Thread Safety,Jax Ws,(1) 好的,我对JAX-WS Java web服务的线程模型感到非常困惑。我读到它们不是线程安全的。那么,它们应该如何服务于多个并行请求呢?考虑到人们总是知道(大多数情况下)他们会同时从多个客户端被调用 (2) app服务器是否为每个请求创建一个新的web服务实例(比如它维护一个无状态会话bean池,为请求分配一个实例,请求完成后,它将返回到该池)。您可以在AppServer控制台(GlassFish或JBoss或WebSphere)中配置该池大小吗 (3) 我在这里还发现了@Threadso

(1) 好的,我对JAX-WS Java web服务的线程模型感到非常困惑。我读到它们不是线程安全的。那么,它们应该如何服务于多个并行请求呢?考虑到人们总是知道(大多数情况下)他们会同时从多个客户端被调用

(2) app服务器是否为每个请求创建一个新的web服务实例(比如它维护一个无状态会话bean池,为请求分配一个实例,请求完成后,它将返回到该池)。您可以在AppServer控制台(GlassFish或JBoss或WebSphere)中配置该池大小吗

(3) 我在这里还发现了@Threadsope注释,它可以为每个请求创建新线程。


这是一个好的选择吗?我确信人们正在以其他标准方式解决线程安全和并行请求问题-请提供建议

应用服务器包含一个bean池
在处理无状态会话bean时,不能保证在处理会话时得到相同的实例
但是,正如我所提到的,bean由池管理,在其中保存状态是个坏主意
不过,我不认为ejbbean与您的需求有任何关系
请注意,在您提供的示例中,数据服务和连接都是根据请求创建的。这有点贵
我会考虑只使用线程本地API来连接,并从连接池中获得。BR> 您可以通过阅读和阅读关于


总之,我认为EJB与此无关。

不要将服务类和字段都保存在线程本地,而只保存将为每个请求分配的必要字段。(在您展示的示例中,这是连接)

这是我试图找到答案的问题。我得到了一些信息(不太清楚)。我学到的是,服务器为webservice创建单个实例(如servlet),所以它们(服务)不是线程安全的。因此,在编写代码时,不要将任何特定于线程的数据作为实例变量/静态变量来保存。@thinkstrip我有一个答复给您。。看看这个。。希望它能回答你的一些问题。。谢谢你的回复。。。你能解决上面的(1)和(2)吗?它们是关于web服务生命周期的问题,我还没有找到任何好的文档来回答这些问题。再一次,我认为这是一个糟糕的方法,你应该选择无状态行为。我使用JAX-RS开发较少。从我在文档中看到的情况来看,您可以使用@ThreadScope为每个请求线程创建一个服务的instance,但这是不好的。还有一个提示-如果你发现我给了你帮助,请随意更新我的答案,我将不胜感激。Thx@zaske。如果你能解释一下为什么你认为这是个坏主意,我将不胜感激。。。你只是做了一个没有解释的声明来支持它…:)还有@zaske我不明白每个请求的线程是如何“不是”一个无状态的方法-你的回答似乎表明了这一点…我仍然在寻找上面(1)和(2)的解释或参考链接。