Сбой Infinispan с java.lang.NoSuchMethodError: org.jboss.marshalling.MarshallingConfiguration.setExternalizerCreator

У нас есть несколько серверов Ubuntu, все они Tomcat 8 и Java 8, обновление 45; все они исполняют наше заявление без проблем; но на недавно созданном сервере происходит сбой приложения при инициализации со следующей (частичной) трассировкой стека:

Caused by: org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.marshall.core.GlobalMarshaller.start() on object of type GlobalMarshaller
        at org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:241)
        at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:545)
        at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:516)
        at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:398)
        at com.ats.framework.model.dao.impl.SingleTenantInfinispanDirectoryProvider.criaCache(SingleTenantInfinispanDirectoryProvider.java:126)
        at com.ats.framework.model.dao.impl.SingleTenantInfinispanDirectoryProvider.start(SingleTenantInfinispanDirectoryProvider.java:98)
        at com.ats.framework.model.dao.search.impl.MultiTenantDirectoryProvider.getDirectory(MultiTenantDirectoryProvider.java:62)
        at org.hibernate.search.reader.SharingBufferReaderProvider.initialize(SharingBufferReaderProvider.java:95)
        at org.hibernate.search.reader.ReaderProviderFactory.createReaderProvider(ReaderProviderFactory.java:76)
        at org.hibernate.search.spi.SearchFactoryBuilder.buildNewSearchFactory(SearchFactoryBuilder.java:278)
        at org.hibernate.search.spi.SearchFactoryBuilder.buildSearchFactory(SearchFactoryBuilder.java:144)
        at org.hibernate.search.event.FullTextIndexEventListener.initialize(FullTextIndexEventListener.java:151)
        at org.hibernate.event.EventListeners$1.processListener(EventListeners.java:198)
        at org.hibernate.event.EventListeners.processListeners(EventListeners.java:181)
        at org.hibernate.event.EventListeners.initializeListeners(EventListeners.java:194)
        ... 63 more
Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.marshall.core.GlobalMarshaller.start() on object of type GlobalMarshaller
        at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
        at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:869)
        at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:638)
        at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:627)
        at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:530)
        at org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:219)
        ... 77 more
Caused by: java.lang.NoSuchMethodError: org.jboss.marshalling.MarshallingConfiguration.setExternalizerCreator(Lorg/jboss/marshalling/Creator;)V
        at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.<init>(AbstractJBossMarshaller.java:64)
        at org.infinispan.marshall.core.JBossMarshaller.<init>(JBossMarshaller.java:52)
        at org.infinispan.marshall.core.VersionAwareMarshaller.start(VersionAwareMarshaller.java:63)
        at org.infinispan.marshall.core.GlobalMarshaller.start(GlobalMarshaller.java:36)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:183)
        ... 82 more

Это точно такая же JVM, как и другие серверы, точно такой же Tomcat, на котором выполняется точно такая же WAR. Любые идеи о том, что может быть причиной того, что Infinispan выбросить NoSuchMethodError только на конкретном сервере?

1 ответ

В то время как jboss-marshalling/1.4.9. У финала и старше есть метод

@Deprecated
public void setExternalizerCreator(final Creator externalizerCreator)

Более новая версия jboss-marshalling/2.0.0.Beta2 не делает. Смотрите здесь. Возможно, у вас есть новая библиотека, которая не совместима со старыми библиотеками. Я бы сравнил версии jboss-marshallingXXXXX.jar на старом и новом серверах.

надеюсь, это поможет

Другие вопросы по тегам