繁体   English   中英

Tomcat 7和8无法在YOSEMITE和Java JDK SE 8下启动-缺少ExtendedPlatformComponent

[英]Tomcat 7 & 8 do not start under YOSEMITE and Java JDK SE 8 - missing ExtendedPlatformComponent

也许有人以前有过(可能已经解决了)

在使用Yosemite的macbook pro上,我通过JDK安装了Java 8“ 1.8.0_40-ea”。

我的$JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home

然后,我从http://tomcat.apache.org/download-80.cgi下载了一个tomcat 8内核。启动此tomcat 8时,出现以下Java异常-参见下文。

使用此Java 8,我的较早的tomcat 7也会引发相同的异常。

似乎sun/management/ExtendedPlatformComponent不是tomcat 8或java 8的一部分

方法ExtendedPlatformComponent应该在rt.jar文件中,但不是。 这似乎是针对Mac的JDK SE 8中的错误:(

有人对我有提示吗? 我无法弄清楚我们的错在哪里...我只是将该类添加到rt.jar但是甚至找不到该类...

PS: The exception on start (/bin/startup.sh):
22-Nov-2014 18:43:02.218 SEVERE [main]
    org.apache.tomcat.util.digester.Digester.startElement Begin event threw
    error * java.lang.NoClassDefFoundError: sun/management/ExtendedPlatformComponent*
        at java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:494)
        at org.apache.tomcat.util.modeler.Registry.getMBeanServer(Registry.java:443)
        at ...

jre / jdk8(1.8.0_40)的更新40 Early Access版本似乎存在问题。 与jre / jdk8版本的更新20相比,您将看到以下代码行已添加到getPlatfromMBeanServer中:

        for (final PlatformManagedObject o :
                                   ExtendedPlatformComponent.getMXBeans()) {
            if (!platformMBeanServer.isRegistered(o.getObjectName())) {
                addMXBean(platformMBeanServer, o);
            }

但是,如果您查看jre随附的rt.jar,则找不到此新引入的类(ExtendedPlatformComponent)。

与平台无关,所有JAVA_VERSION =“ 1.8.0_40” EA版本中似乎都存在此问题。

您的补救措施是移回稳定版本。 最新的稳定发行版似乎是Java SE 8u25。

我遇到了同样的问题,升级到1.8.0_40 ea build 20(于2014年12月31日发布),并修复了该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM