我喜欢使用Wildfly 10.1和Hazelcast 3.8对JEE环境进行原型设计。到目前为止,我只对古老的JBoss 4.2.3.GA有经验。
我已经在https://github.com/hazelcast/hazelcast-ra下找到了基于较旧的hazelcast 3.6的现有资源适配器实现。不幸的是,我无法在Wildfly 10.1上部署 as-is ,因为IronJacamar抱怨缺少equals / hashCode方法(因为它们在源代码中被明显覆盖而不是真的代码。部署git master的自构快照有同样的问题)。
我最终将ra.xml配置代码迁移到正确的javax.resource.spi注释(@Connector,@ ConfigProperty,@ ConnectionDefinition)并添加了javax.resource.Referenceable接口实现(不知道是否这样有必要的)。 hazelcast 3.8的步骤要容易得多 - 只需在HazelcastConnectionImpl中添加缺少的接口方法。
我仍然在努力部署/配置,所以这是我的问题:
JCA适配器的部署结构应该如何?我测试了以下方法:
一体化:包含所有cache-api-1.0.0.jar
,hazelcast-3.8.jar
,hazelcast-client-3.8.jar
,my-hazelcast-ra-impl.jar
和部署描述符的RAR文件
By-Library 已添加新模块javax.cache.api
(cache-api-1.0.0.jar
)和com.hazelcast.hazelcast
(hazelcast-3.8.jar
,hazelcast-client-3.8.jar
)到${WILDFLY_HOME}/modules/
并在jboss-deployment-structure.xml
中声明了适当的模块依赖关系。 RAR文件包含my-hazelcast-ra-impl.jar
,hazelcast.xml
和部署描述符。
By-Adapter:向my.hazelcast.ra
添加了一个新模块cache-api-1.0.0.jar
(my-hazelcast-ra-impl.jar
,${WILDFLY_HOME}/modules/
),并声明了相应的模块依赖关系在jboss-deployment-structure.xml
。 RAR文件包含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内容分开?如果它可以热部署(用于原型设计)会很好,但这不是强制性的。在Wildfly管理网络界面中,我可以在Depoyments和JNDI视图中找到已部署的RAR,但它未在Configuration - >下列出。子系统 - >资源适配器。我可以在那里创建一个新的条目,但没有找到任何优势。 此配置选项的含义是什么?
提前谢谢