【问题标题】:Hazelcast with openjdk-15Hazelcast 与 openjdk-15
【发布时间】:2021-04-08 22:36:56
【问题描述】:

如何使用 java15 运行 hazelcast?我正在使用 usercodedeployment,所以我需要在 java 15 中安装我自己的类。现在我收到错误:

{"@timestamp":"2021-04-08T23:34:43.129+02:00","@version":"1","message":"Hazelcast nepripojen","logger_name":"org.my.data.HazelcastInstanceWrapper","thread_name":"main","level":"ERROR","level_value":40000,"stack_trace":"com.hazelcast.client.UndefinedErrorCodeException: Class name: java.lang.UnsupportedClassVersionError, Message: org/my/data/MyData has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0\n\tat java.lang.ClassLoader.defineClass1(Native Method)\n\tat java.lang.ClassLoader.defineClass(ClassLoader.java:1017)\n\tat java.lang.ClassLoader.defineClass(ClassLoader.java:878)\n\tat com.hazelcast.internal.usercodedeployment.impl.ClassSource.define(ClassSource.java:52)\n\tat com.hazelcast.internal.usercodedeployment.impl.ClassLocator.defineClassFromClient(ClassLocator.java:135)\n\tat com.hazelcast.internal.usercodedeployment.impl.ClassLocator.defineClassesFromClient(ClassLocator.java:107)\n\tat com.hazelcast.internal.usercodedeployment.UserCodeDeploymentService.defineClasses(UserCodeDeploymentService.java:74)\n\tat com.hazelcast.internal.usercodedeployment.impl.operation.DeployClassesOperation.run(DeployClassesOperation.java:49)\n\tat com.hazelcast.spi.impl.operationservice.Operation.call(Operation.java:184)\n\tat com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.call(OperationRunnerImpl.java:256)\n\tat com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:237)\n\tat com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:452)\n\tat com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:166)\n\tat com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:136)\n\tat com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.executeRun(OperationThread.java:123)\n\tat com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:102)\n","SERVERNAME":"rob-cache-8448d476d6-l9k2j"}

我检查 hazelcast 是否支持这个版本,当我检查官方 dockerfile 时,有 java11。是否还有 java 15 的版本,或者我需要使用 java 15 创建自己的 dockerfile?

【问题讨论】:

  • 当底层可执行文件不兼容时,制作自己的 docker 文件将无济于事

标签: java docker hazelcast


【解决方案1】:

正如你提到的,官方的 Docker 镜像使用 Java 11。注意你的链接指向企业版,OSS 版本是here

由于您的代码是使用 Java 15 编译的,因此服务器端的 Java 11 运行时无法执行它。

使用 Java 运行时 15+ 创建您自己的 Dockerfile 将解决此问题。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多