我喜欢使用 Wildfly 10.1 和 Hazelcast 3.8 对 JEE 环境进行原型设计。到目前为止,我只对古老的 JBoss 4.2.3.GA 有经验。
我已经在https://github.com/hazelcast/hazelcast-ra下找到了基于旧 hazelcast 3.6 的现有资源适配器实现。不幸的是,我无法在 Wildfly 10.1 上按原样部署它,因为 IronJacamar 抱怨缺少 equals/hashCode 方法(这是不正确的,因为它们在源代码中被明确覆盖。部署 git master 的自建快照具有相同的问题)。
我最终将 ra.xml 配置代码迁移到正确的 javax.resource.spi 注释(@Connector、@ConfigProperty、@ConnectionDefinition)并添加了 javax.resource.Referenceable 接口实现(不知道这是否有必要)。hazelcast 3.8 的步骤要容易得多 - 只需向 HazelcastConnectionImpl 添加缺少的接口方法。
我仍然在为部署/配置而苦恼,所以这是我的问题:
JCA 适配器的部署结构应该是什么样的?我测试了以下方法:
一体机: RAR 文件,包含所有、 、
cache-api-1.0.0.jar
和hazelcast-3.8.jar
部署描述符。hazelcast-client-3.8.jar
my-hazelcast-ra-impl.jar
By - Library
javax.cache.api
:在.cache-api-1.0.0.jar
_ _ _ RAR 文件包含和部署描述符。com.hazelcast.hazelcast
hazelcast-3.8.jar
hazelcast-client-3.8.jar
${WILDFLY_HOME}/modules/
jboss-deployment-structure.xml
my-hazelcast-ra-impl.jar
hazelcast.xml
By - Adapter
my.hazelcast.ra
:cache-api-1.0.0.jar
在. _ RAR 文件包含、和部署描述符。my-hazelcast-ra-impl.jar
${WILDFLY_HOME}/modules/
jboss-deployment-structure.xml
hazelcast-3.8.jar
hazelcast-client-3.8.jar
hazelcast.xml
将 hazelcast.xml 配置文件部署到 Wildfly 10.1 的合适位置在哪里?看来我需要将它打包到 ResourceAdapterImpl 类(
my-hazelcast-ra-impl.jar
) 旁边,以便类加载器找到它并更喜欢它而不是 hazelcast-default.xml。它仅包含全局配置选项,如组/网络。没有缓存定义,因为应该通过 CDI 按需配置/创建缓存。- 有没有类似
conf
文件夹的东西,我可以在其中部署hazelcast.xml
与二进制 RAR 内容分开的文件?如果它可以被热部署(用于原型设计)那就太好了,但这不是强制性的。 - 它应该以某种方式放置在standalone.xml 中的子系统配置中吗?我为 infinispan 子系统找到了类似的缓存容器配置,但不知道如何使其适应 hazelcast(因为它不是自己的子系统)。
- 有没有类似
在 Wildfly 管理 web 界面中,我可以在 Depoyments 和 JNDI 视图中找到已部署的 RAR,但它未在 Configuration -> Subsystems -> Resource Adapters 下列出。我可以在那里创建一个新条目,但没有发现任何优势。这个配置选项是什么意思?
先感谢您