I encounter the following stacktrace when I run my app on windows server 2019 with infinispan cache enable (it's working fine on linux) :
org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.infinispan.manager.DefaultCacheManager]: Factory method 'defaultCacheManager' threw exception; nested exception is org.infinispan.commons.CacheException: Unable to construct a GlobalComponentRegistry!
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:620)
... 145 more
Caused by: org.infinispan.commons.CacheException: Unable to construct a GlobalComponentRegistry!
at org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:173)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:267)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:234)
at com.myapp.dsi.service.config.CacheConfiguration.defaultCacheManager(CacheConfiguration.java:186)
at com.myapp.dsi.service.config.CacheConfiguration$$EnhancerBySpringCGLIB$$e52c9d72.CGLIB$defaultCacheManager$2(<generated>)
at com.myapp.dsi.service.config.CacheConfiguration$$EnhancerBySpringCGLIB$$e52c9d72$$FastClassBySpringCGLIB$$25a6cc05.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
at com.myapp.dsi.service.config.CacheConfiguration$$EnhancerBySpringCGLIB$$e52c9d72.defaultCacheManager(<generated>)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 146 more
Caused by: org.infinispan.commons.CacheConfigurationException: Error starting component org.infinispan.marshall.protostream.impl.SerializationContextRegistry
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:555)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.findFactory(BasicComponentRegistryImpl.java:258)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.getComponent0(BasicComponentRegistryImpl.java:127)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.getComponent(BasicComponentRegistryImpl.java:65)
at org.infinispan.factories.impl.BasicComponentRegistry.getComponent(BasicComponentRegistry.java:74)
at org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:166)
... 159 more
Caused by: org.infinispan.protostream.DescriptorParserException: Failed to resolve type of field "org.infinispan.persistence.commons.MediaType.tree". Type not found : string
at org.infinispan.protostream.descriptors.FileDescriptor.resolveFieldTypes(FileDescriptor.java:307)
at org.infinispan.protostream.descriptors.FileDescriptor.resolveDependencies(FileDescriptor.java:217)
at org.infinispan.protostream.descriptors.FileDescriptor.resolveDependencies(FileDescriptor.java:173)
at org.infinispan.protostream.descriptors.ResolutionContext.resolve(ResolutionContext.java:57)
at org.infinispan.protostream.impl.SerializationContextImpl.registerProtoFiles(SerializationContextImpl.java:117)
at org.infinispan.commons.marshall.PersistenceContextInitializerImpl.registerSchema(PersistenceContextInitializerImpl.java:44)
at org.infinispan.marshall.persistence.impl.PersistenceContextInitializerImpl.registerSchema(PersistenceContextInitializerImpl.java:70)
at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$MarshallerContext.lambda$update$0(SerializationContextRegistryImpl.java:123)
at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$MarshallerContext$$Lambda$587/0000000000000000.accept(Unknown Source)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$MarshallerContext.update(SerializationContextRegistryImpl.java:122)
at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl.lambda$start$0(SerializationContextRegistryImpl.java:42)
at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$$Lambda$586/0000000000000000.accept(Unknown Source)
at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl.update(SerializationContextRegistryImpl.java:86)
at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl.start(SerializationContextRegistryImpl.java:35)
at org.infinispan.marshall.protostream.impl.CorePackageImpl$1.start(CorePackageImpl.java:33)
at org.infinispan.marshall.protostream.impl.CorePackageImpl$1.start(CorePackageImpl.java:27)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:587)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:578)
at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
... 176 more
You can see below my defaultCacheManager implementation:
@Bean(destroyMethod = "stop")
@Conditional(InfinispanCondition.class)
public DefaultCacheManager defaultCacheManager(Set<InfinispanCacheConfigurer> configurers,
@Value("${uwp.deployment.external-ip:#{null}}") String externalIp) throws Exception {
Default properties = cacheProperties.getDefault();
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
// @formatter:off
configurationBuilder
.statistics().enabled(properties.isStatisticsEnabled())
.memory()
.evictionType(properties.getEvictionType()).size(properties.getEvictionSize())
.expiration()
.lifespan(properties.getExpirationLifetime().toMillis())
.maxIdle(properties.getExpirationMaxIdle().toMillis());
if (properties.isPersistenceEnabled()) {
configurationBuilder.persistence()
.passivation(properties.isPersistencePassivationEnabled())
.addSingleFileStore()
.purgeOnStartup(properties.isPersistencePurgeOnStartup())
.maxEntries(properties.getPersistenceMaxEntries())
.location(System.getProperty("java.io.tmpdir") + "/wap-caches");
}
// @formatter:on
GlobalConfigurationBuilder globalConfigurationBuilder = new GlobalConfigurationBuilder();
globalConfigurationBuilder.jmx().domain("infinispan").enable();
if (!isLocal) {
configurationBuilder.clustering().stateTransfer().awaitInitialTransfer(false);
globalConfigurationBuilder
.transport()
.defaultTransport()
.clusterName("infinispan-cluster")
.jgroups()
.transport(new JGroupsTransport(createChannel(cacheProperties, externalIp)));
}
globalConfigurationBuilder.defaultCacheName("default");
// @formatter:off
globalConfigurationBuilder
.serialization()
.marshaller(new JavaSerializationMarshaller())
.whiteList()
.addRegexp(".*");
globalConfigurationBuilder
.serialization()
.whiteList()
.addRegexp(".*");
// @formatter:on
DefaultCacheManager cacheManager = new DefaultCacheManager(globalConfigurationBuilder.build(),
configurationBuilder.build());
configurers.forEach(c -> c.configureCache(cacheManager));
return cacheManager;
}
Does someone already face the same issue with Infinispan Cache on Windows Server and was able to solved it ?