java - 暂停和通知 Java Web 服务中的特定线程

标签 java multithreading web-services cxf parallel-processing

我正在使用 CXF 编写 Java Web 服务。我遇到以下问题:客户端从 Web 服务调用方法。 Web 服务必须并行执行两件事并启动两个线程。其中一个线程需要来自客户端的一些附加信息。调用 Web 服务方法时无法添加此信息,因为它依赖于 Web 服务中完成的计算。我无法重新设计网络服务,因为它是类(class)作业的一部分,并且作业规定我必须这样做。我想暂停线程并在客户端提供附加信息时通知它。不幸的是,在 Java 中不可能通知特定线程。我找不到任何其他方法来解决我的问题。

有人有建议吗?

最佳答案

经过更多思考后,我编辑了我的答案

您有一个相当复杂的架构,如果您的客户端需要来自服务器的信息才能完成请求,那么我认为您需要发布一个或多个“帮助程序”方法。

例如,您可以发布(无需所有 Web 服务注释):

MyData validateMyData(MyData data);

boolean processMyData(MyData data);

然后,客户端会根据需要多次调用 validateMyData(),直到它知道自己拥有完整的信息。服务器可以修改(通过计算、数据库查找或其他方式)MyData 中的变量,以帮助完成信息并将其传递回客户端(用于更新 UI,如果有)一)。

信息完成后,客户端就可以调用 processMyData() 来处理完整的请求。

这样做的优点是无需后台线程即可实现服务器方法,因为它们应该能够使用服务器环境提供的请求线程来完成其工作。

唯一需要注意的是,如果MyData 可能变得非常大,并且您不想继续在客户端和服务器之间来回传递它。在这种情况下,您需要提供一个较小的类,其中仅包含服务器想要对 MyData 进行的更改,并排除不需要更正的数据。

关于java - 暂停和通知 Java Web 服务中的特定线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019659/

相关文章:

java - 如何强制 Eclipse 在控制台上显示英文?

java - JPanel 中的图像尺寸变小

java - 为什么Java同步线程打印乱序?

Java 并行工作迭代器?

php - 评论汇总 Google 丰富网页摘要 - 评论计数错误

c# - 通过 Web 服务将数据从 Sql Server 移动到 Excel

api - Postman/SoapUI API 调用后的数据存储

java - 如何在不创建新图表的情况下将 jzy3d 图表添加到 JFrame?

java - Android 登录页面中的抽象方法和类

java - 如何检查所有线程是否被中断