我有一个使用Jersey和Tomcat的REST webservice。如果客户端调用REST Web服务,它将向ActiveMQ队列服务器发送消息。为此,REST服务器必须创建一个连接,一个会话等来向ActiveMQ服务发送消息。此时,来自客户端的每个呼叫都将创建此连接和会话等。看下面这个例子使用Jersey和ActiveMQ的Java RESTful服务 - 在启动时加载到ActiveMQ的连接
@GET
@Produces(MediaType.TEXT_PLAIN)
public Response getProducts() {
...
session.start();
connection.start();
...
sendMessageToQueue();
...
session.close();
connection.close()
}
我要的是创造,它表示已经开始连接,会话等MessageHandler的一类。使用messageHandler.sendMessage()
,应该可以立即从REST getProducts方法发送消息。
我的问题是:如何在Tomcat服务器启动时始终运行这样一个处理程序? 我发现通过实现ServletContextListener和Listeners,可以在Tomcat运行之前加载一个类,但是如何在REST-Servlet-Classes中访问此类?
谢谢