将外部jgroups模块添加到wildfly(native-s3-ping)

oxf4rvwz  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(333)

我已经用一个示例web应用(clusterbench)建立了一个wildfly集群,它使用s3\u-ping协议工作得很好。但是,现在我正在尝试配置本机\u s3 \u ping,它最终将取代s3 \u ping(并允许使用aws iam角色来控制访问)。
我对wildfly还比较陌生,我找不到任何好的文档来解释如何导入这个模块。
我已经下载了所需的jar,并将它们放在:

/modules/system/layers/base/org/jgroups/aws/main

并创建了module.xml,其中包含:

<?xml version="1.0" encoding="UTF-8"?>
<module name="org.jgroups.aws.s3" xmlns="urn:jboss:module:1.7">

<resources>
    <resource-root path="native-s3-ping-1.0.0.Final.jar"/>
</resources>

<dependencies>
    <module name="javax.api"/>
    <module name="org.jgroups"/>
</dependencies>

但是,当我尝试启动服务器时,出现了一些错误,例如:

2020-11-25 03:29:15,947 WARN  [org.jboss.modules.define] (ServerService Thread Pool -- 3) Failed to define class org.jgroups.logging.CustomLogFactory in Module "org.jgroups" version 4.2.4.Final from local module loader @490ab905 (finder: local module finder @56ac3a89 (roots: /home/oracle/wildfly/modules,/home/oracle/wildfly/modules/system/layers/base)): org.jboss.modules.ModuleLoadError: org.jgroups.aws.s3

这会导致jgroups无法解析配置并无法启动,这意味着服务器无法启动。
将这个(以及任何其他)外部jgroups模块集成到wildfly中的正确过程是什么?
编辑:在这里找到了一些文档,它指明了添加自定义模块的方法。试过这个:

module add --name=org.jgroups.aws.s3 --resource-delimiter=, --resources=native-s3-ping-0.9.6.Final.jar,joda-time-2.8.1.jar,jmespath-java-1.11.368.jar,jgroups-4.1.8.Final.jar,jackson-dataformat-cbor-2.6.7.jar,jackson-databind-2.6.7.1.jar,jackson-core-2.6.7.jar,jackson-annotations-2.6.0.jar,ion-java-1.0.2.jar,httpcore-4.4.9.jar,httpclient-4.5.5.jar,commons-logging-1.1.3.jar,commons-codec-1.10.jar,aws-java-sdk-s3-1.11.368.jar,aws-java-sdk-kms-1.11.368.jar,aws-java-sdk-core-1.11.368.jar --dependencies=javax.api,org.jgroups

但是,仍然会出现以下错误:

2020-11-25 05:15:58,773 WARN  [org.jboss.modules.define] (ServerService Thread Pool -- 3) Failed to define class org.jgroups.logging.CustomLogFactory in Module "org.jgroups" version 4.2.5.Final from local module loader @490ab905 (finder: local module finder @56ac3a89 (roots: /home/oracle/wildfly/modules,/home/oracle/wildfly/modules/system/layers/base)): org.jboss.modules.ModuleLoadError: Error loading module from /home/oracle/wildfly/modules/org/jgroups/aws/s3/main/module.xm

我已经确认了它所抱怨的课程实际上是可用的。。。

xmq68pz9

xmq68pz91#

我想出来了。
使用api添加模块。确保不包括jgroups jar,因为它会发生冲突。

module add --name=org.jgroups.aws.s3 --resource-delimiter=, --resources=httpclient-4.5.9.jar,native-s3-ping-1.0.0.Final.jar,joda-time-2.8.1.jar,jmespath-java-1.11.708.jar,jackson-dataformat-cbor-2.6.7.jar,jackson-databind-2.6.7.3.jar,jackson-core-2.6.7.jar,jackson-annotations-2.6.0.jar,ion-java-1.0.2.jar,httpcore-4.4.11.jar,commons-logging-1.1.3.jar,commons-codec-1.11.jar,aws-java-sdk-s3-1.11.708.jar,aws-java-sdk-kms-1.11.708.jar,aws-java-sdk-core-1.11.708.jar --dependencies=javax.api,org.jgroups

在wildfly standalone-config.xml中,确保正确定义了协议类型。e、 在这种情况下,它可以找到自定义协议。

<stack name="s3ping">
                 <transport type="TCP" socket-binding="jgroups-tcp"/>
                 <protocol type="org.jgroups.aws.s3.NATIVE_S3_PING" module="org.jgroups.aws.s3"> </stack>

相关问题