这是我的需求:
我有一个在 JBoss 5.1 上运行的 WebService 应用程序(具有 jboss-classloading 配置 export-all=NON_EMPTY 和 import-all=true)。我想在其上添加一些拦截器,但我无法更改旧的 WS WAR。
我的问题是什么:
我设法在JAR中打包了一个简单的拦截器,基本上记录了旧Web服务上的每个调用。但是为了实现我的目标,我需要使用 JAR 依赖项,如 XML 解析器、业务对象等......
如何将我的 AOP 拦截器及其依赖项打包到一个文件中?
我试过什么:
在 WAR 包中,我必须使用类似的 jboss-classload 策略来避免冲突,但在这种情况下,除了 WAR 本身中的类之外,我无法拦截任何其他内容,因此我无法拦截遗留的 WS 调用。
PS :我已经完成了所有基础知识,以使JBoss AOP正常工作:
-
pluggable-instrument.jar
在垃圾箱文件夹中 - 与
-javaagent:pluggable-instrumentor.jar
一起运行 - 启用加载时间编织并包含包定义的
aop.xml
- 具有有效切入点配置的
jboss-aop.xml
(我想要在我的软件包中)
现在我通过构建 SAR 包(JBoss 服务存档)找到了解决方案。
SAR 文件如下所示:
AOP-interceptors.sar
- 元信息/
jboss-service.xml
- AOP 拦截器.jar
- 元信息/
jboss-aop.xml
- com.mypackage.aop.interceptors...
- com.mypackage.aop.handlers...
- com.mypackage.aop.business.logic...
- 元信息/
- XML解析器.jar
- 业务对象.jar
- 。
SAR 文件部署在文件夹 : jboss-5.1/server/default/deployers/jboss-aop-jboss5.deployer/
我不知道SAR包应该做什么...有没有更好的方法可以做到这一点?