Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JCA 1.6 ResourceAdapter是否需要ManagedConnectionFactory?_Java_Jakarta Ee_Java Ee 6_Jca - Fatal编程技术网

Java JCA 1.6 ResourceAdapter是否需要ManagedConnectionFactory?

Java JCA 1.6 ResourceAdapter是否需要ManagedConnectionFactory?,java,jakarta-ee,java-ee-6,jca,Java,Jakarta Ee,Java Ee 6,Jca,我写了一封信 然而,现在我发现自己不得不写一个,仅仅是为了访问BootstrapContext及其关联的WorkManager,而没有其他原因 如果我正确阅读了规范——这是我的问题——如果我希望有人能够以符合规范的方式使用我的资源适配器,我仍然需要实现ManagedConnectionFactory,因为似乎只有ManagedConnectionFactory实现销售的用户连接工厂才有资格通过@Resource注释进行注入 继续,再读一遍;我会等的。:-) 在一个完美的世界中,我想编写我的Res

我写了一封信

然而,现在我发现自己不得不写一个,仅仅是为了访问
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资源适配器的人的意见。

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

仅仅使用JCA1.6注释,在模块中定义一个ResourceAdapter实现(基本上)没有其他内容,这合法吗

对。这很好

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

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

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

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

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

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


GlassFish将引导资源适配器。

很久以前,2004年,当我不得不实现ResourceAdapter时,ManagedConnectionFactory是必要的,我几乎不相信此后有任何更改。好的,但上面的问题并没有问是否有可能构建无连接的ResourceAdapter。我从你的回答(和其他人)中看到你可以做到这一点,但如果你希望你的最终用户能够使用它,那么我的问题是:是否有必要提供连接工厂?你所说的使用它是什么意思?你需要让AS激活它。最明显的机制是将ConnectionFactory注入到
@Startup@Stateless
EJB中。现在,您可以确保JCA引导程序在部署时被调用。对于通信来说,如果“消息”的概念不适合您,那么AdministratedObject可能是控制它的另一种机制。