我在部署连接到Tibco RV资源适配器的MDB时遇到了问题,但是当RA被正确部署时,MDB提出了我无法解决的问题,尽管尝试了几次。
这是我试图使我的MDB部署连接到资源适配器。
- 我已经部署了我的RA (TIBCO -adapter-ra2.rar):它是一个与TIBCO RV中间件集成的RA。在附件中,您可以看到tibco-adapter-ra2 maven项目的rar文件
- RA在另一个maven项目中具有其逻辑,我将其命名为tibco-adapter-jar(也附加了项目)
- 有第二个maven jar项目(tibco-adapter-msg-listener),只包含messagellistener,它是tibco-adapter-jar项目 的依赖项。
到目前为止,没有问题。我可以部署Tibco Adapter RA,而无需在standalone.xml文件中进行任何进一步配置。
问题(ERROR 1):由于以下错误,我无法部署Tibco - Adapter -ear,使用Tibco - Adapter -ejb(它包含连接到Tibco Adapter RA的MDB,它们两个也都附加了):
MDB使用Annotation来引用消息侦听器接口:
import com.ericsson.jee.sep.tibco.adapter.api.TibcoRvMessageListener;
// from tibco-adapter-msg-listener JAR, so also tibco-adapter-ejb refers that library
@MessageDriven(name="TibcoRvMDB",
messageListenerInterface=TibcoRvMessageListener.class,
activationConfig={})
@ResourceAdapter(value="tibco-adapter-ra2.rar")
public class TibcoRvMessageBean implements TibcoRvMessageListener
...
由以下原因引起:org.jboss.msc.service.ServiceNotFoundException: Service Service jboss.ejb.default-resource-adapter-name-service not found(参见Error1_Deployment_EAR_1.txt查看完整的Stack Trace)
我还用以下配置编辑了standalone.xml
:
...
<subsystem xmlns="urn:jboss:domain:ejb3:1.5">
...
<mdb>
<resource-adapter-ref resource-adapter-name="tibco-adapter-ra2.rar"/>
...
</mdb>
...
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="tibco-resource-adapter">
<archive>tibco-adapter-ra2.rar</archive>
</resource-adapter>
</resource-adapters>
</subsystem>
这个配置后的ERROR 2是:
由:java.lang.IllegalStateException: JBAS014521:没有在资源适配器tibco-adapter-ra2中找到类型为com.ericsson.jee.sep.tibco.adapter.api.TibcoRvMessageListener的消息侦听器(参见Error2_Deployment_EAR_2.txt获取完整的堆栈跟踪)。
TibcoRvMessageListener
不是传统的JMS消息侦听器,而是Tibco RV消息侦听器。
我在过去看到过类似的问题,但是一些建议已经被应用了(参见standalone.xml
配置),没有解决问题。
我真的需要一个支持,因为我找不到前进的路。
我做错了吗?
亲切的问候,Pierluigi
我想我的问题和这个很相似:
[Can't deploy Maven jar (MDB) on Jboss 6
但基本上问题出在错误的maven结构上。我已经解决了将我的maven项目结构对齐到Github上可用的结构:
[https://github.com/timothysparg/JCA-Inflow-Wildfly] [1]
在我的原始项目中,我试图分别部署RA和EAR,而GitHub项目显示了另一种方法:一个包含RAR和EJB的单个EAR,其中包含JAR(包含RAR的业务逻辑),包含在依赖项中提供。