JCA 1.6 ResourceAdapter是否需要ManagedConnectionFactory?

Lai*_*son 26 java jca java-ee java-ee-6

我以前写了一个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资源适配器的人.

Sha*_*imi 3

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

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

是的。这可以。

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

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

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

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

是的。

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

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

GlassFish 将引导资源适配器。

  • 好的,但是上面的问题并没有问是否可以构建无连接的 ResourceAdapter。我从你的答案(和其他人)中看到你可以做到这一点,但是如果你希望你的最终用户能够使用它,那么我的问题是:是否有必要提供连接工厂? (3认同)