spring-boot - 为什么 Infinispan 在 Spring Boot/Java 11 上因 NoClassDefFoundError 而失败?

标签 spring-boot infinispan java-11

我正在尝试在 Java 11 上使用 infinispan-spring-boot-starter,但是当应用程序在 jar 中启动时,它失败并出现 NoClassDefFoundError。

如果我使用 Java 8 运行它,它工作正常。如果我使用 Java 11 运行它,它也工作正常

    mvn spring-boot:run

但是如果用

执行会失败
   java -jar target/demo-0.0.1-SNAPSHOT.jar

有以下异常(exception):

    Caused by: org.infinispan.commons.CacheConfigurationException: Failed to construct component org.infinispan.marshall.core.EncoderRegistry, path null
at org.infinispan.factories.impl.BasicComponentRegistryImpl.instantiateWrapper(BasicComponentRegistryImpl.java:141) ~[infinispan-core-9.4.5.Final.jar!/:9.4.5.Final]
at org.infinispan.factories.impl.BasicComponentRegistryImpl.getComponent0(BasicComponentRegistryImpl.java:107) ~[infinispan-core-9.4.5.Final.jar!/:9.4.5.Final]
at org.infinispan.factories.impl.BasicComponentRegistryImpl.getComponent(BasicComponentRegistryImpl.java:73) ~[infinispan-core-9.4.5.Final.jar!/:9.4.5.Final]
at org.infinispan.factories.impl.BasicComponentRegistry.getComponent(BasicComponentRegistry.java:75) ~[infinispan-core-9.4.5.Final.jar!/:9.4.5.Final]
at org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:158) ~[infinispan-core-9.4.5.Final.jar!/:9.4.5.Final]
... 56 common frames omitted
    Caused by: java.lang.NoClassDefFoundError: org/infinispan/commons/util/FastCopyHashMap$Values (wrong name: org/infinispan/commons/dataconversion/BinaryEncoder)
at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ~[na:na]
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550) ~[na:na]
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458) ~[na:na]
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452) ~[na:na]
at java.base/java.security.AccessController.doPrivileged(Native Method) ~[na:na]
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) ~[na:na]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93) ~[demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
at org.infinispan.factories.EncoderRegistryFactory.construct(EncoderRegistryFactory.java:48) ~[infinispan-core-9.4.5.Final.jar!/:9.4.5.Final]
at org.infinispan.factories.impl.BasicComponentRegistryImpl.instantiateWrapper(BasicComponentRegistryImpl.java:137) ~[infinispan-core-9.4.5.Final.jar!/:9.4.5.Final]
... 60 common frames omitted

我的设置:

  • Ubuntu 16.04
  • 行家 3.6
  • openjdk 11.0.1

在这里你可以找到一个小的演示项目来说明问题:https://github.com/ben-schroeder/infinispan-ncdfe .请运行它

mvn clean install
java -jar target/demo-0.0.1-SNAPSHOT.jar

感谢您对问题的任何帮助。是错误还是我遗漏了什么?

最佳答案

感谢您指出这一点。我们正在调查 spring-boot 团队的问题。 这里是我们打开的Spring-Boot问题

https://github.com/spring-projects/spring-boot/issues/15981

[更新] 今天 (04-04-2019) 发布的 Spring-Boot 2.1.4.RELEASE 解决了这个问题。请检查发行说明、错误修复部分

https://github.com/spring-projects/spring-boot/releases/tag/v2.1.4.RELEASE

关于spring-boot - 为什么 Infinispan 在 Spring Boot/Java 11 上因 NoClassDefFoundError 而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54635814/

相关文章:

java - 如何访问 hystrix 仪表板?

java - infinispan缓存服务器过期失败

java - 如何配置 Wildfly 8 以使用 Infinispan 缓存实体

Java 11 `HttpClient` 下载但没有? (负内容长度)

intellij-idea - 如何让 JavaFX 和 Java 11 在 IntelliJ IDEA 中工作

spring-boot - 注册 consul 服务器与 consul 客户端

java - 微服务架构零停机部署

java - Spring JPA ManyToOne 删除句柄

java - Infinispan 不会将缓存实体删除复制到非协调器节点

java - Maven 插件问题 :maven-enforcer-plugin:3. 0.0-M3:enforce 某些 Enforcer 规则失败