我想知道是否可以在jca适配器内获取对ejb3本地业务接口的引用?

资源适配器和ejb .jar 都被打包进同一个 .ear. 。应用程序在带有 ejb3 功能包的 WebSphere AS 6.1 下运行。

我尝试过使用 ejblocal:<full_class_name_of_local_interface> 作为 JNDI 名称,但没有成功。

有帮助吗?

解决方案

你想做的可能是 概念上错误. 。JCA 适配器不应依赖于 EJB —— JCA 适配器不应查找 EJB。

但 JCA 适配器适用于 入境出境 不过连接性。JCA 连接器与 EJB(入站连接)通信的正确方法是通过消息驱动 bean(MDB).

  1. JCA 适配器定义了将用于通信的接口。
  2. 然后,自定义 MDB 可以实现此接口并可以接收来自适配器的入站请求。

我同意,在这种情况下,“消息驱动 bean”这个名称有点误导。自定义 MDB 实际上就像 EJB,接收来自 JCA 连接器的调用。它不一定与消息或异步处理相关。如果您想要自定义 MDB,则可以查找或让其他 EJB 注入来委托处理。

最好看的文档是“使用 J2EE 连接器架构 1.5 创建资源适配器。 它提供了入站和出站连接的示例。相应的代码可以在SDK附带的J2EE示例中找到。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top