代码之家  ›  专栏  ›  技术社区  ›  Anurag Sharma

更新ubuntu后tomcat8停止工作

  •  1
  • Anurag Sharma  · 技术社区  · 6 年前

    我最近更新了我的ubuntu桌面到18.04。在这之后,我的tomcat在启动时失败了。每次我使用命令重新启动tomcat时 service tomcat8 restart 日志文件出现以下错误-

        Caused by: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture.get(LRUHybridCache.java:164)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache.compute(LRUHybridCache.java:303)
        ... 135 more
    Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
        at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3119)
        at java.base/java.lang.Class.getDeclaredMethods(Class.java:2268)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperUtilities$3.run(ClassReflectionHelperUtilities.java:108)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperUtilities$3.run(ClassReflectionHelperUtilities.java:104)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperUtilities.secureGetDeclaredMethods(ClassReflectionHelperUtilities.java:104)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperUtilities.getDeclaredMethodWrappers(ClassReflectionHelperUtilities.java:133)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperUtilities.getAllMethodWrappers(ClassReflectionHelperUtilities.java:192)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperUtilities.getAllMethodWrappers(ClassReflectionHelperUtilities.java:193)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperImpl$3.compute(ClassReflectionHelperImpl.java:84)
        at org.glassfish.hk2.utilities.reflection.internal.ClassReflectionHelperImpl$3.compute(ClassReflectionHelperImpl.java:80)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:115)
        at org.glassfish.hk2.utilities.cache.LRUHybridCache$OriginThreadAwareFuture$1.call(LRUHybridCache.java:111)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    

    dimension:bin$ sudo update-alternatives --config javac
    There are 2 choices for the alternative javac (providing /usr/bin/javac).
    
      Selection    Path                                          Priority   Status
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1101      auto mode
      1            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1101      manual mode
    * 2            /usr/lib/jvm/java-8-openjdk-amd64/bin/javac    1081      manual mode
    
    Press <enter> to keep the current choice[*], or type selection number: 
    dimension:bin$ sudo update-alternatives --config java
    There are 2 choices for the alternative java (providing /usr/bin/java).
    
      Selection    Path                                            Priority   Status
    ------------------------------------------------------------
      0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
      1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      manual mode
    * 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
    
    Press <enter> to keep the current choice[*], or type selection number:
    

    当我再次重新启动tomcat时,我看到了同样的错误。这是我的书的内容 jvm 文件夹-

    ls -lh /usr/lib/jvm/
    total 8.0K
    lrwxrwxrwx 1 root root   25 Apr  8 18:46 default-java -> java-1.11.0-openjdk-amd64
    lrwxrwxrwx 1 root root   21 Aug 24 23:06 java-1.11.0-openjdk-amd64 -> java-11-openjdk-amd64
    drwxr-xr-x 9 root root 4.0K Oct  4 10:56 java-11-openjdk-amd64
    lrwxrwxrwx 1 root root   20 Oct 28  2016 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
    drwxr-xr-x 7 root root 4.0K Oct  4 16:03 java-8-openjdk-amd64
    

    我的 JAVA_HOME env当前设置为空。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Karol Dowbecki    6 年前

    java.base 异常堆栈跟踪的一部分 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 表明您仍在使用JDK11运行。

    请确保Tomcat 8与JDK 8一起运行。尝试使用调试Tomcat启动脚本 set -x 要查看Java位置是如何确定的,可能是在 /etc/default/tomcat8 ?