Я пытаюсь запустить Spring Boot webapp (исполняемый war) со встроенным кластеризованным vertx. Он не работает с нижеследующим исключением.Spring Boot webapp со встроенным vertx не запускается
java.lang.IllegalArgumentException: PortableFactory[-14] is already registered! com.hazelcas[email protected]738ae532 -> com.hazelcas[email protected]60d09d45
at com.hazelcast.nio.serialization.PortableHookLoader.register(PortableHookLoader.java:84)
at com.hazelcast.nio.serialization.PortableHookLoader.load(PortableHookLoader.java:51)
at com.hazelcast.nio.serialization.PortableHookLoader.<init>(PortableHookLoader.java:41)
at com.hazelcast.nio.serialization.SerializationServiceImpl.<init>(SerializationServiceImpl.java:126)
at com.hazelcast.nio.serialization.DefaultSerializationServiceBuilder.createSerializationService(DefaultSerializationServiceBuilder.java:221)
at com.hazelcast.nio.serialization.DefaultSerializationServiceBuilder.build(DefaultSerializationServiceBuilder.java:194)
at com.hazelcast.instance.DefaultNodeExtension.createSerializationService(DefaultNodeExtension.java:113)
at com.hazelcast.instance.Node.<init>(Node.java:160)
at com.hazelcast.instance.HazelcastInstanceImpl.<init>(HazelcastInstanceImpl.java:120)
at com.hazelcast.instance.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:151)
at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:134)
at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:110)
at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:58)
at io.vertx.spi.cluster.hazelcast.HazelcastClusterManager.lambda$join$0(HazelcastClusterManager.java:138)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$1(ContextImpl.java:259)
at io.vertx.core.impl.OrderedExecutorFactory$OrderedExecutor.lambda$new$0(OrderedExecutorFactory.java:94)
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)
Это случается, если у вас есть разные банки ящерицы в вашем пути к классам. Но я убедился, что у меня нет другой версии. Он все еще не работает. Я даже попытался исключить весеннюю загрузку HazelcastAutoConfiguration.class, которая может начать свой собственный экземпляр, но все равно не повезло.
Любой ключ?
Вы можете начать кластерный Vert.x экземпляр повторного использования экземпляра Hazelcast предоставляемых Spring ботинок. Посмотрите на http://vertx.io/docs/vertx-hazelcast/java/#_using_an_existing_hazelcast_cluster для получения более подробной информации – tsegismont
К сожалению, это не прямо для нас, потому что вся конфигурация, связанная с кластером, находится в другом проекте, который используется другими приложениями , – darwinbaisa