27

我之前写过一个JCA 资源适配器

然而,现在我发现自己不得不写一个仅仅为了访问BootstrapContext及其相关的WorkManager,并且没有其他原因有效。

如果我正确阅读规范——这是我的问题——看起来如果我希望有人能够以符合规范的方式使用ManagedConnectionFactory我的资源适配器,我仍然需要实现,因为看起来只有实现提供的用户连接工厂ManagedConnectionFactory有资格通过@Resource注释进行注入。

来吧,再读一遍;我会等。:-)

在一个完美的世界里,我想编写我的ResourceAdapter实现,用 注释它@Connector,指定所有@ConfigProperty位,将它打包到一个.rar文件中,然后完成它。

但是,在我看来,规范实际上要求消费者(在我的情况下为无状态 EJB)和资源适配器模块之间的所有通信都应该通过用户连接工厂来完成。

例如,第 6.10.1 节说:

资源适配器必须提供以下接口的实现:

  • javax.resource.spi.ManagedConnectionFactory
  • javax.resource.spi.ManagedConnection
  • javax.resource.spi.ManagedConnectionMetaData

但是第 18 节——关于注释的部分——似乎并没有以任何有意义的方式强制执行这一点。

真的是这样吗?我想肯定是这样,但我很想听听那些组装了 1.6 资源适配器的人的来信。

4

1 回答 1

3

“本节概述了连接管理合同的要求。”

仅使用 JCA 1.6 注释来简单地定义一个 ResourceAdapter 实现是否合法——基本上——模块中没有其他内容?

是的。这可以。

规范在第 19.2 节中指出,出站资源适配器(这将是)必须 {handwave handwave} 使用连接管理,

交易管理和安全管理合同。在所有这三种情况下,我只想表明——最好通过省略注释和/或代码——我不支持它们中的任何一个

如果您不需要出站通信功能,则不必定义它们(连接工厂、托管连接工厂等)

简单地构建一个实现 ResourceAdapter 的 POJO,用 @Connector 注释它,然后从那里开始就足够了吗?

是的。

然后我可以使用 @Resource 注释将这样的 POJO 注入到我的 EJB 中吗?

我不认为可以使用@Resource 注解注入“ResourceAdapter”Java Bean。每当资源适配器部署/启用/服务器启动时,

GlassFish 将引导资源适配器。

于 2011-01-21T05:56:19.617 回答