簡體   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