Java 对现有EJB应用环绕建议

Java 对现有EJB应用环绕建议,java,jboss,ejb,weblogic,interceptor,Java,Jboss,Ejb,Weblogic,Interceptor,我们在JBoss和Weblogic上部署了第三方应用程序。我们需要在此应用程序中记录对EJB的访问,以便进行审计。是否可以应用透明服务,将所有对这些EJB的调用记录到文件或数据库中 我能想到的唯一选择是将Spring用作业务代理,并修改客户端以使用Springbean。不幸的是,我们没有修改客户机代码的选项,这必须在服务器上进行,以使我们的代码在客户机调用EJB之前和之后执行 我为此寻找解决方案,但没有找到任何能为我指明正确方向的东西 谢谢你的帮助 编辑: 经过进一步研究,JBoss似乎确实支持

我们在JBoss和Weblogic上部署了第三方应用程序。我们需要在此应用程序中记录对EJB的访问,以便进行审计。是否可以应用透明服务,将所有对这些EJB的调用记录到文件或数据库中

我能想到的唯一选择是将Spring用作业务代理,并修改客户端以使用Springbean。不幸的是,我们没有修改客户机代码的选项,这必须在服务器上进行,以使我们的代码在客户机调用EJB之前和之后执行

我为此寻找解决方案,但没有找到任何能为我指明正确方向的东西

谢谢你的帮助

编辑:

经过进一步研究,JBoss似乎确实支持定制EJB拦截器。对于EJB2.x,可以使用standardjboss.xml进行配置;对于ejb3.x,可以使用ejb3-interceptors-aop.xml进行配置


事实证明,关于如何创建用于EJB2.x的拦截器的示例并不多,这正是我所需要的。它看起来并不太难,我会试试看它是否有效。

您应该能够直接使用EJB3拦截器。在中查找DefaultInterceptor,了解如何将侦听器应用于部署中的所有EJB。EJB3规范支持这一点

对于JBoss中的EJB2.x,请查看standard-JBoss.xml。在这里,您可以修改不同ejb类型的完整默认容器。您还可以在standard-jboss.xml中创建一个新的容器配置,并在其中添加拦截器,通过在ejb.jar META-INF/文件夹中包含一个jboss.xml,将ejb与新配置关联起来。或者,如果我没记错的话,您可以在META-INF/jboss.xml中定义新的容器配置和关联。以下是一些信息: