2012-08-13 18 views
2

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

我能想到的唯一选择是使用Spring作为业务委托并修改客户端以使用Spring bean。不幸的是,我们没有修改客户端代码的选项,这必须在服务器上以我们的代码在客户端调用EJB之前和之后执行的方式完成。

我搜索了一个解决方案,并没有发现任何可以指出我正确的方向。

谢谢你的帮助。

编辑:

经过进一步研究,似乎JBoss的不支持自定义EJB拦截器。使用EJB 2.x的standardjboss.xml和EJB 3.x的ejb3-interceptors-aop.xml可以对此进行配置。

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

回答

3

您应该可以直接使用EJB 3拦截器。在http://docs.jboss.org/ejb3/docs/tutorial/1.0.7/html/EJB3_Interceptors.html中查找DefaultInterceptor以查看如何将拦截器应用于部署中的所有ejbs。这由EJB 3规范支持。

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

相关问题