对于我们当前基于JBoss的J2EE项目,我们需要使用消息驱动bean和第三方作为RAR文件提供的JCA资源适配器与远程系统接口。我想将整个项目打包并部署为EAR文件到我们的JBoss服务器。最值得注意的是,RAR文件应该嵌入EAR文件中,而不是全局部署。
到目前为止,所有这些都工作正常,但是我对引用RAR文件的方式并不特别满意。例如,与MDB一起打包的jboss.xml当前看起来像这样:
<jboss>
<enterprise-beans>
<message-driven>
<ejb-name>testBean1</ejb-name>
<resource-adapter-name>test1.ear#thirdparty-1.0.rar</resource-adapter-name>
</message-driven>
</enterprise-beans>
</jboss>
虽然通常可以正常工作,但是当EAR文件重命名为“ test2.ear”时,它将中断。有没有一种方法可以引用嵌入式RAR文件而无需对包含的存档名称进行硬编码?
编辑:差不多两个月后,我仍然没有找到这个问题的真正答案。四处询问,我得到的只有两个有用的建议:“使用Maven属性和过滤”和“不要在EAR中包含RAR”。我强烈怀疑目前在JBoss中无法正确处理此问题。因此,我将放弃它,只接受我在这里得到的唯一答案。
您是否正在使用Maven进行构建?如果是这样,则可以设置一个名称为ear文件的maven属性,并使用该名称使用占位符来设置资源文件中的值。
例如xxx
然后使用
$ {ear.name} .ear#thirdparty-1.0.rar
只需确保您设置将具有占位符的资源
类似这样:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>