将具有业务依赖性的JBoss AOP拦截器打包为独立应用程序

时间:2014-11-21 16:33:00

标签: java maven jboss aop

以下是我的需求:

我有一个在JBoss 5.1上运行的WebService应用程序(带有jboss-classloading配置export-all = NON_EMPTY且import-all = true)。 我想在其上添加一些拦截器,但我不能改变传统的WS WAR。

我的问题是什么:

我设法在JAR中打包一个简单的拦截器,它基本上记录了旧版WebService上的每个调用。 但为了实现我的目标,我需要使用JAR依赖,如XML解析器,业务对象等......

如何将AOP拦截器及其依赖项打包到一个文件中?

我尝试了什么:

在WAR包中,我必须使用类似的jboss-classloading策略来避免冲突,但在这种情况下,我不能拦截WAR本身中的其他任何东西,所以我无法拦截传统的WS调用

PS:我已经完成了让JBoss AOP正常工作的所有基础知识:

    bin文件夹中的
  • pluggable-instrument.jar
  • 带有-javaagent:pluggable-instrumentor.jar
  • 的run.conf
  • aop.xml启用了loadTimeWeaving并包含了包定义
  • jboss-aop.xml使用有效的切入点配置(我想要在我的包中)

1 个答案:

答案 0 :(得分:0)

目前我通过构建SAR包(JBoss Service Archive)找到了解决方案。

SAR文件如下所示:

<强> AOP-interceptors.sar

  • META-INF / jboss-service.xml
  • AOP-interceptors.jar
    • META-INF / jboss-aop.xml
    • com.mypackage.aop.interceptors ...
    • com.mypackage.aop.handlers ...
    • com.mypackage.aop.business.logic ...
  • XML的parsers.jar
  • 商务objects.jar
  • ...

SAR文件部署在文件夹中:jboss-5.1 / server / default / deployers / jboss-aop-jboss5.deployer /

我不知道SAR包应该做什么...有没有更好的方法呢?