Веб-приложение Spring Boot со встроенным vertx не запускается

Я пытаюсь запустить веб-приложение Spring Boot (исполняемая война) со встроенным кластерным вертексом. Это терпит неудачу с исключением ниже.

java.lang.IllegalArgumentException: PortableFactory[-14] is already registered! com.hazelcast.concurrent.countdownlatch.client.CountDownLatchPortableHook$1@738ae532 -> com.hazelcast.concurrent.countdownlatch.client.CountDownLatchPortableHook$1@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)

Это происходит, если у вас есть разные банки hazelcast в пути к классам. Но я убедился, что у меня нет другой версии. Это все еще терпит неудачу. Я даже пытался исключить весеннюю загрузку HazelcastAutoConfiguration.class, который может запускать свой собственный экземпляр, но все равно не повезло.

Любая подсказка?


person darwinbaisa    schedule 14.10.2016    source источник
comment
Вы можете запустить кластеризованный экземпляр Vert.x, повторно используя экземпляр Hazelcast, предоставленный Spring Boot. Взгляните на vertx.io/docs/vertx-hazelcast/java/ подробности   -  person tsegismont    schedule 14.10.2016
comment
К сожалению, это не так просто для нас, потому что вся конфигурация, связанная с кластером, находится в другом проекте, который используется другими приложениями.   -  person darwinbaisa    schedule 14.10.2016


Ответы (1)


Кажется, этот обходной путь работает: сбой создания простой службы GlassFish для использования Hazelcast

person darwinbaisa    schedule 14.10.2016