1

从 OracleJDK 8 迁移到 OpenJDK 11 后,我们的 Tomcat 8 不再启动,但出现以下异常:

Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSContext
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 43 common frames omitted

我们的 Spring Boot (Kotlin+Java) 项目是由 Gradle 5.2.1 构建的,我尝试将以下配置添加到我们的 build.gradle:

   compileJava {
      inputs.property("moduleName", moduleName)
      doFirst {
        options.compilerArgs = [
          '--module-path', classpath.asPath,
          '--add-modules', 'java.security.jgss'
        ]
        classpath = files()
      }
    }

不幸的是,这并不能解决问题。如果有人有建议,将不胜感激!

4

1 回答 1

2

好的,我发现了如何使它工作:

我必须将 --add-modules java.security.jgss 添加到 IntelliJ 中的 VM 选项(以及 Gradle 中(见下文),然后它才能工作。

bootRun {
  jvmArgs = ["--add-modules", "java.security.jgss"]
}
于 2019-02-28T07:18:22.290 回答