【发布时间】:2011-05-11 02:14:12
【问题描述】:
我写了JCA resource adapter before。
但是,现在我发现自己不得不写一个来访问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 资源适配器的人的意见。
【问题讨论】:
-
很久以前,2004 年,当我不得不实现 ResourceAdapter 时,ManagedConnectionFactory 是必要的,我几乎不相信从那以后发生了什么变化。
标签: java jakarta-ee java-ee-6 jca