我写了一个之前的JCA资源适配器 http://code.google.com/p/drools-jca/.
然而,现在我发现自己不得不写一篇文章来访问BootstrapContext
及其相关的WorkManager
,并且有效地没有其他原因。
如果我正确地阅读了规范——这就是我的问题——看起来我是否希望有人能够use我的资源适配器以符合规范的方式,我仍然需要实现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 资源适配器的人的意见。
“本节概述了连接管理合同的要求。”
仅使用 JCA 1.6 注释来简单地定义 ResourceAdapter 实现(基本上在模块中没有其他内容)是否合法?
是的。这可以。
该规范在第 19.2 节中指出,出站资源适配器(这将是)必须{handwave handwave} 使用连接管理,
交易管理和安全管理合同。在所有这三种情况下,我只是想表明——最好是通过省略注释和/或代码——我不支持其中任何一个
如果不需要出站通信功能,则不必定义它们(连接工厂、托管连接工厂等)
简单地构建一个实现 ResourceAdapter 的 POJO,用 @Connector 对其进行注释,然后从那里开始就足够了吗?
Yes.
然后我可以使用 @Resource 注释将这样的 POJO 注入到我的 EJB 中吗?
我不认为可以使用 @Resource 注释注入“ResourceAdapter”Java Bean。每当部署/启用资源适配器/启动服务器时,
GlassFish 将引导资源适配器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)