我正在修改作为2.1无状态EJB实现的现有应用程序。我想对EJB的所有调用进行某种通用的,详细的记录。
我要记录的东西:
我之前为asp.net REST Web服务实现了类似的功能,只需在处理请求之前放入一个钩子,然后在响应发送回之前放入一个钩子。它产生大量数据,但对于调试长时间运行的系统来说非常值得。
我不确定如何为EJB做同样的事情。我想避免AOP,因为该应用程序目前不使用AOP。拦截器不起作用,因为它不是EJB 3.0。
有没有人知道一种挂钩到EJB处理管道的方法,以便在它们进入时查看请求?还有另一种做法吗?
由于
答案 0 :(得分:1)
我认为只有两种方法可以知道何时调用EJB(或任何其他类)的方法:
错误的解决方案:使用Java调试接口(JDI),您可以知道在使用IDE调试Java时所知道的行。它很复杂,当您在运行JDI的同一JVM中调试应用程序时会出现一些问题。
良好的解决方案:正如Thomas Owens所说,AOP是推荐的解决方案。如果您现在没有在项目中使用它,这是使用它的一个很好的理由。