簡體   English   中英

將外部 jgroups 模塊添加到 Wildfly (native-s3-ping)

[英]Add external jgroups module to Wildfly (native-s3-ping)

我已經使用S3_PING 協議設置了一個帶有示例 Web 應用程序 (ClusterBench) 的 Wildfly 集群,該協議工作正常。 但是,現在我正在嘗試配置NATIVE_S3_PING ,它最終應該取代 S3_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

我已經確認它抱怨的課程實際上是可用的......

弄清楚了。

  1. 使用 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
  2. 在 Wildfly standalone-config.xml 中,確保正確定義了協議類型。 例如,在這種情況下,它可以找到自定義協議。

     <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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM