Redissonドライバを介してRedisキャッシュクラスタと通信するWebアプリケーションを構築しました。 Redissonドライバは、その設定をYAMLファイルからロードします。 構成には、オブジェクトの作成にコンストラクタを使用して作成される2つの属性が含まれています。コンフィギュレーションが原因これらのコンストラクタメソッドへのロードに失敗したいくつかの理由 は、次のエラーで呼び出します。ここでは"無効なタグ"エラーのためにJavaオブジェクトを構築できません
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SessionManagement]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:939)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1812)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: Can't construct a java object for org.redisson.connection.balancer.RoundRobinLoadBalancer; exception=Invalid tag: org.redisson.connection.balancer.RoundRobinLoadBalancer
in 'reader', line 14, column 17:
loadBalancer: !<org.redisson.connection.balanc ...
^
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:350)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:182)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:373)
はYAMLファイルです:
---
clusterServersConfig:
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 1000
timeout: 1000
retryAttempts: 3
retryInterval: 1000
reconnectionTimeout: 3000
failedAttempts: 3
password: null
subscriptionsPerConnection: 5
clientName: null
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
slaveSubscriptionConnectionMinimumIdleSize: 1
slaveSubscriptionConnectionPoolSize: 25
slaveConnectionMinimumIdleSize: 5
slaveConnectionPoolSize: 100
masterConnectionMinimumIdleSize: 5
masterConnectionPoolSize: 100
readMode: "SLAVE"
nodeAddresses:
- "//172.31.150.113:7000"
- "//172.31.150.113:7001"
- "//172.31.150.113:7002"
- "//172.31.150.113:7003"
- "//172.31.150.113:7004"
- "//172.31.150.113:7005"
scanInterval: 1000
threads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
useLinuxNativeEpoll: false
eventLoopGroup: null
私がオブジェクトに必要なredissonライブラリいることが確認しましたクリエーションはクラスパス上にあります。
誰もこのYAMLファイルがSnakeyamlによって正しく読み込まれない理由を知っていますか?
私の設定はうまく動作します。おそらく、あなたのredissonバージョンを追加することができます。 –