如何在EJB容器中关闭时执行数据库清理操作

时间:2010-09-13 04:26:43

标签: java jboss ejb

我有一个EJB应用程序。它基本上必须在关闭时执行SQL查询。关闭钩子可能会起作用,但这样我就不能使用注入的entitymanager / datasource等。

有没有办法提供可以在EJB bean上调用方法的关闭钩子?

我们的EJB容器是JBoss5.1。

谢谢!

2 个答案:

答案 0 :(得分:0)

看起来这样有用: (编辑:由于某种原因,之前发布的答案不适用于JBoss5.1。这有效。)

    public class SomeServlet extends GenericServlet {
        public void destroy(){
            InitialContext ctx = null;
            try{
                ctx = new InitialContext();
                DataSource ds = (DataSource)ctx.lookup("java:/someDataSource");
                doStuff();
            }catch(Exception e){
                log.error("Bad things happened",e);
            }

            finally{
                try {
                    ctx.close();
                } catch (NamingException e) {
                    e.printStackTrace();
                }
            }
         }//destroy()
    }//class

答案 1 :(得分:0)

对于ejbs,该方法与zwei提到的方法相同,但是使用具有注释的方法 PreDestroy

添加初始化或清理ejb