1

我喜欢使用 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 添加缺少的接口方法。

我仍然在为部署/配置而苦恼,所以这是我的问题:

  1. JCA 适配器的部署结构应该是什么样的?我测试了以下方法:

    • 一体机: RAR 文件,包含所有、 、cache-api-1.0.0.jarhazelcast-3.8.jar部署描述符。hazelcast-client-3.8.jarmy-hazelcast-ra-impl.jar

    • By - Libraryjavax.cache.api:在. cache-api-1.0.0.jar_ _ _ RAR 文件包含和部署描述符。com.hazelcast.hazelcasthazelcast-3.8.jarhazelcast-client-3.8.jar${WILDFLY_HOME}/modules/jboss-deployment-structure.xmlmy-hazelcast-ra-impl.jarhazelcast.xml

    • By - Adaptermy.hazelcast.racache-api-1.0.0.jar在. _ RAR 文件包含、和部署描述符。my-hazelcast-ra-impl.jar${WILDFLY_HOME}/modules/jboss-deployment-structure.xmlhazelcast-3.8.jarhazelcast-client-3.8.jarhazelcast.xml

  2. 将 hazelcast.xml 配置文件部署到 Wildfly 10.1 的合适位置在哪里?看来我需要将它打包到 ResourceAdapterImpl 类( my-hazelcast-ra-impl.jar) 旁边,以便类加载器找到它并更喜欢它而不是 hazelcast-default.xml。它仅包含全局配置选项,如组/网络。没有缓存定义,因为应该通过 CDI 按需配置/创建缓存。

    • 有没有类似conf文件夹的东西,我可以在其中部署hazelcast.xml与二进制 RAR 内容分开的文件?如果它可以被热部署(用于原型设计)那就太好了,但这不是强制性的。
    • 它应该以某种方式放置在standalone.xml 中的子系统配置中吗?我为 infinispan 子系统找到了类似的缓存容器配置,但不知道如何使其适应 hazelcast(因为它不是自己的子系统)。
  3. 在 Wildfly 管理 web 界面中,我可以在 Depoyments 和 JNDI 视图中找到已部署的 RAR,但它未在 Configuration -> Subsystems -> Resource Adapters 下列出。我可以在那里创建一个新条目,但没有发现任何优势。这个配置选项是什么意思?

先感谢您

4

0 回答 0