Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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
我应该在哪里关闭activemq连接(java、jersey)_Java_Jersey_Activemq - Fatal编程技术网

我应该在哪里关闭activemq连接(java、jersey)

我应该在哪里关闭activemq连接(java、jersey),java,jersey,activemq,Java,Jersey,Activemq,我有一个用@Path注释的类,在这个类中我有一个处理PUT请求的方法。在这个方法中,每次调用这个方法时,我都使用ActiveMQ将消息发布到JMS主题。一切正常 但是现在我想添加一些清理代码(主要是关闭ActiveMQ连接)。我该怎么做 @PUT @Consumes(MediaType.TEXT_PLAIN) public void putString(String myString) throws JMSException { if (txtmessage != null &

我有一个用@Path注释的类,在这个类中我有一个处理PUT请求的方法。在这个方法中,每次调用这个方法时,我都使用ActiveMQ将消息发布到JMS主题。一切正常

但是现在我想添加一些清理代码(主要是关闭ActiveMQ连接)。我该怎么做

@PUT
@Consumes(MediaType.TEXT_PLAIN)
public void putString(String myString) throws JMSException {  
   if (txtmessage != null && producer != null ){
           txtmessage.clearBody();
           txtmessage.setText(myString);
           producer.send(txtmessage);
         }    
      }
所有初始化都在静态块中完成

因此,只要服务器在侦听,我就希望连接处于打开状态,但我希望在服务器停机时显式关闭连接。jersey有没有办法让你处理接近尾声的事件

实施

ServletContextListener:

在web.xml中注册侦听器:

<web-app...>
    <listener>
        <listener-class>package.MyContextListener</listener-class>
    </listener>
</web-app>

你在什么环境下经营泽西?作为tomcat或glassfish等的一部分?作为tomcat的一部分。我正在使用eclipse开发这个。@redman嗨,在这种情况下你能帮我吗。请找到链接-。谢谢你的时间。请看看这个问题,并提出一些补救措施。谢谢你的时间和帮助。我正在努力解决这个问题。如果您提供电子邮件id,我可以向您发送我正在做的示例。谢谢。我是否应该按照您在本文中的建议执行??请帮忙,谢谢
<web-app...>
    <listener>
        <listener-class>package.MyContextListener</listener-class>
    </listener>
</web-app>
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.servlet.http.HttpServlet;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.core.MediaType;

public class MessageServlet extends HttpServlet {

    @PUT
    @Consumes(MediaType.TEXT_PLAIN)
    public void putString(String myString) throws JMSException {
        MessageProducer producer = (MessageProducer) getServletContext()
                .getAttribute(MyContextListener.ACTIVE_MQ_PRODUCER);

        Session session = (Session) getServletContext().getAttribute(
                MyContextListener.ACTIVE_MQ_SESSION);
        TextMessage txtmessage = session.createTextMessage();
        if (txtmessage != null && producer != null) {
            txtmessage.clearBody();
            txtmessage.setText(myString);
            producer.send(txtmessage);
        }
    }
}