gpt4 book ai didi

java - 如何修复 : className ='com.hazelcast.aws.AwsDiscoveryStrategy' , discoveryStrategyFactory=null 是策略类名中的拼写错误吗?

转载 作者:行者123 更新时间:2023-12-02 09:37:18 24 4
gpt4 key购买 nike

我试图在两个单独的 aws ec2 实例中设置两个 jvm 实例,并在这些 jvm 之间配置 hazelcast 缓存机制,这是 hazelcast.xml

    <properties>
<property name="hazelcast.discovery.enabled">true</property>
</properties>

<network>
<join>
<multicast enabled="false"/>
<tcp-ip enabled="false"/>
<aws enabled="true">
<region>us-east-2</region>
<iam-role>my-ec2-role</iam-role>
<!-- <tag-key>aws:cloudformation:stack-name</tag-key>-->
<!-- <tag-value>EC2ContainerService-test-cluster</tag-value>-->
</aws>
</join>
</network>

pom文件

    <dependencies>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-client</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-aws</artifactId>
<version>2.4</version>
</dependency>
</dependencies>

但是,当我在 aws 实例中运行可运行 jar 时,出现以下异常:

Exception in thread "main" com.hazelcast.config.InvalidConfigurationException: Invalid configuration at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.loadDiscoveryStrategies(DefaultDiscoveryService.java:147) at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.(DefaultDiscoveryService.java:57) at com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider.newDiscoveryService(DefaultDiscoveryServiceProvider.java:29) at com.hazelcast.instance.Node.createDiscoveryService(Node.java:318) at com.hazelcast.instance.Node.(Node.java:255) at com.hazelcast.instance.HazelcastInstanceImpl.createNode(HazelcastInstanceImpl.java:161) at com.hazelcast.instance.HazelcastInstanceImpl.(HazelcastInstanceImpl.java:131) at com.hazelcast.instance.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:228) at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:207) at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:157) at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:91) at hazelMain.main(hazelMain.java:10) Caused by: com.hazelcast.config.properties.ValidationException: There is no discovery strategy factory to create 'DiscoveryStrategyConfig{properties={region=us-east-2, iam-role=my-ec2-role}, className='com.hazelcast.aws.AwsDiscoveryStrategy', discoveryStrategyFactory=null}' Is it a typo in a strategy classname? Perhaps you forgot to include implementation on a classpath? at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.buildDiscoveryStrategy(DefaultDiscoveryService.java:186) at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.loadDiscoveryStrategies(DefaultDiscoveryService.java:141)

根据我的理解,当我们使用<aws enabled = true>时。它应该自动检测要使用哪个策略工厂?

最佳答案

您很可能会看到此消息,因为您的类路径上没有 hazelcast-aws.jar (或 hazelcast-all.jar)。您需要将应用程序与所有依赖项打包在一起,或者将上述 JAR 之一复制到您的 EC2 实例中并从 java -cp hazelcast-aws.jar (或 java -cp hazelcast- all.jar)。

关于java - 如何修复 : className ='com.hazelcast.aws.AwsDiscoveryStrategy' , discoveryStrategyFactory=null 是策略类名中的拼写错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com