Java 如何在Web服务中运行线程

Java 如何在Web服务中运行线程,java,tomcat,web-services,multithreading,axis2,Java,Tomcat,Web Services,Multithreading,Axis2,有人能帮我吗 我使用axis2、apache和tomcat创建了简单的web服务。此web服务有一个队列,用于保存从客户端发送的xml文件,因此每当客户端调用web服务上的方法时,web服务都会将此xml加载到其队列中。现在,我想让一个线程在webservice中运行,它监视这个队列,如果队列中有项目,则执行一些操作 但我的问题是,只有当客户端调用其接口上的一个方法时,才会调用webservice。但是我需要这个线程在webserbice上运行。有人能告诉我有什么办法吗 当客户端在WebServ

有人能帮我吗

我使用axis2、apache和tomcat创建了简单的web服务。此web服务有一个队列,用于保存从客户端发送的xml文件,因此每当客户端调用web服务上的方法时,web服务都会将此xml加载到其队列中。现在,我想让一个线程在webservice中运行,它监视这个队列,如果队列中有项目,则执行一些操作

但我的问题是,只有当客户端调用其接口上的一个方法时,才会调用webservice。但是我需要这个线程在webserbice上运行。有人能告诉我有什么办法吗


当客户端在WebService上调用方法时,它不考虑以前的方法调用。这意味着它不会跟踪队列中的数据,每次调用都会创建新队列。

如果web应用程序中需要后台线程,则必须在web.xml中注册的ContextListener中管理它们。然后,当web应用程序启动和停止时,系统会通知您。

如果web应用程序中需要后台线程,则必须在web.xml中注册的ContextListener中管理它们。然后,当web应用程序启动和停止时,您会收到通知。

听起来是JMS/消息驱动bean的完美用例。提供这些功能而不必使用成熟的J2EE容器,因此tomcat适合这里。可以提供消息传递引擎


本质上,您的web服务将把消息放在队列上,消息驱动bean(或消息驱动pojo)将从队列和进程中读取它们。使用JMS的优点是,如果服务器上的负载增加,您可以将消息驱动bean重新配置为位于单独的主机上。这还意味着您可以轻松地移动到不同的应用服务器,因为JMS是一个标准化的解决方案。

听起来像是JMS/消息驱动bean的完美用例。提供这些功能而不必使用成熟的J2EE容器,因此tomcat适合这里。可以提供消息传递引擎


本质上,您的web服务将把消息放在队列上,消息驱动bean(或消息驱动pojo)将从队列和进程中读取它们。使用JMS的优点是,如果服务器上的负载增加,您可以将消息驱动bean重新配置为位于单独的主机上。这还意味着您可以轻松地移动到不同的应用服务器,因为JMS是一个标准化的解决方案。

您的描述不够清晰。您的描述不够清晰。