所有EJB调用的通用日志记录(2.1)?

时间:2009-10-16 22:15:46

标签: java ejb

我正在修改作为2.1无状态EJB实现的现有应用程序。我想对EJB的所有调用进行某种通用的,详细的记录。

我要记录的东西:

  • 被称为方法的名称
  • 所有传递参数的序列化副本
  • 返回值的序列化副本

我之前为asp.net REST Web服务实现了类似的功能,只需在处理请求之前放入一个钩子,然后在响应发送回之前放入一个钩子。它产生大量数据,但对于调试长时间运行的系统来说非常值得。

我不确定如何为EJB做同样的事情。我想避免AOP,因为该应用程序目前不使用AOP。拦截器不起作用,因为它不是EJB 3.0。

有没有人知道一种挂钩到EJB处理管道的方法,以便在它们进入时查看请求?还有另一种做法吗?

由于

1 个答案:

答案 0 :(得分:1)

我认为只有两种方法可以知道何时调用EJB(或任何其他类)的方法:

  • 错误的解决方案:使用Java调试接口(JDI),您可以知道在使用IDE调试Java时所知道的行。它很复杂,当您在运行JDI的同一JVM中调试应用程序时会出现一些问题。

  • 良好的解决方案:正如Thomas Owens所说,AOP是推荐的解决方案。如果您现在没有在项目中使用它,这是使用它的一个很好的理由。