gpt4 book ai didi

java - 在 Web 应用程序中使用全局服务和 *PortType 类?

转载 作者:行者123 更新时间:2023-11-30 11:35:46 25 4
gpt4 key购买 nike

我使用 JAXWS 生成了一个 Web 服务客户端。我注意到在使用 JAXWS 客户端时,实例化 Service*PortType 类需要一段时间。因此,每次需要发出请求时实例化 Service*PortType 类并不是一个好主意。

  • Service*PortType 类设置为整个 Web 应用程序的全局类是否安全?它的优点和缺点是什么?
  • 请求/响应是否有可能切换到不同的请求/响应?
  • 当您调用服务中的方法时,它会创建一个新连接吗?还是只是重复使用旧连接?
  • 如果它只是重​​复使用旧连接,那么可能存在一些线程问题,对吗?

同时给定代码,port.calculate(requestParam),其中 port 是一个全局变量,如果多个线程同时调用 calculate() 方法会发生什么情况?每个线程都会为每个计算调用创建一个新线程吗?或者它会等待每个调用完成后再继续下一个调用吗?这些电话将如何处理?我只是担心我可能会混淆一些请求和响应。

提前致谢!

最佳答案

你的担心是对的。端口不是线程安全的,但是创建时间最长的服务是线程安全的。没有这方面的官方文档,但有说明 here在这个forum post完成的实验显示同一端口上的多个请求导致乱码请求。推荐的方法是创建一个服务和一个端口对象池,您可以从中 check out 以发出请求。另一种选择是使用 CXF,它确实使他们的客户端对象线程安全,并且在他们的文档中更明确地说明了如何跨线程共享。

关于java - 在 Web 应用程序中使用全局服务和 *PortType 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com