Java 如何引用嵌入式JCA资源适配器

Java 如何引用嵌入式JCA资源适配器,java,jakarta-ee,jboss,jboss-mdb,jca,Java,Jakarta Ee,Jboss,Jboss Mdb,Jca,对于我们当前基于JBoss的J2EE项目,我们需要使用消息驱动bean和第三方提供的作为RAR文件的JCA资源适配器与远程系统进行接口。我想将整个项目打包并作为EAR文件部署到我们的JBoss服务器。最值得注意的是,RAR文件应该嵌入到EAR文件中,而不是全局部署 到目前为止,所有这些都运行良好,但我对RAR文件的引用方式不是特别满意。例如,与MDB打包在一起的jboss.xml当前如下所示: <jboss> <enterprise-beans> <

对于我们当前基于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>
<build>
<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

testBean1
测试1.ear#第三方-1.0.rar
虽然这通常工作正常,但当EAR文件重命名为“test2.EAR”时,它将中断。有没有一种方法可以引用嵌入的RAR文件,而不必硬编码包含归档文件的名称


编辑:差不多两个月后,我仍然没有找到这个问题的真正答案。四处打听,我得到的都是这两条有用的建议:“使用Maven属性和过滤”,以及“不要将RAR包含在EAR中”。我强烈怀疑,目前在JBoss中无法正确处理这一问题。因此,我将放弃它,只接受我在这里得到的唯一答案。

您使用maven来构建吗?如果是这样,您可以设置一个maven属性来命名ear文件,并使用该名称使用占位符在资源文件中设置值

e、 g xxx

然后使用

${ear.name}.ear#第三方-1.0.rar

只需确保设置了将包含占位符的资源

大概是这样的:

<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>
<build>
<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

src/main/resources
真的

谢谢您的回答!我必须承认,在此期间,我在这里交叉发布了这样一条消息:到目前为止,我得到的最有用的答案与你的建议非常相似。我正在使用maven,我已经习惯于使用资源过滤。但它仍然感觉不太对劲,更像是一种权宜之计。