web-dev-qa-db-ja.com

openjdkからSunに切り替えた後のTomcat ClassNotFoundException java

Javaバージョンをopenjdk jre 1.7からSun jre 1.7に切り替えました。Tomcatを起動すると、次のエラーが発生します。

SEVERE: Begin event threw error
Java.lang.NoClassDefFoundError: org.Apache.catalina.mbeans.ServerLifecycleListener
   at Java.lang.Class.initializeClass(libgcj.so.10)
   at Java.lang.Class.newInstance(libgcj.so.10)
   at org.Apache.Tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.Java:206)
   at org.Apache.Tomcat.util.digester.Rule.begin(Rule.Java:153)
   at org.Apache.Tomcat.util.digester.Digester.startElement(Digester.Java:1356)
   at gnu.xml.stream.SAXParser.parse(libgcj.so.10)
   at org.Apache.Tomcat.util.digester.Digester.parse(Digester.Java:1642)
   at org.Apache.catalina.startup.Catalina.load(Catalina.Java:524)
   at org.Apache.catalina.startup.Catalina.load(Catalina.Java:562)
   at Java.lang.reflect.Method.invoke(libgcj.so.10)
   at org.Apache.catalina.startup.Bootstrap.load(Bootstrap.Java:261)
   at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:413)
Caused by: Java.lang.ClassNotFoundException: javax.management.modelmbean.ModelMBeanNotificationBroadcaster not found in org.Apache.catalina.loader.StandardClassLoader{urls=[file:/opt/Apache-Tomcat-6.0.35/lib/,file:/opt/Apache-Tomcat-6.0.35/lib/el-api.jar,file:/opt/Apache-Tomcat-6.0.35/lib/jasper-el.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-i18n-fr.jar,file:/opt/Apache-Tomcat-6.0.35/lib/jsp-api.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina.jar,file:/opt/Apache-Tomcat-6.0.35/lib/jasper.jar,file:/opt/Apache-Tomcat-6.0.35/lib/servlet-api.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina-tribes.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina-ha.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-dbcp.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-coyote.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-i18n-ja.jar,file:/opt/Apache-Tomcat-6.0.35/lib/ecj-3.7.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina-ant.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-i18n-es.jar,file:/opt/Apache-Tomcat-6.0.35/lib/annotations-api.jar], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/opt/Apache-Tomcat-6.0.35/bin/bootstrap.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
   at Java.net.URLClassLoader.findClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.VMClassLoader.defineClass(libgcj.so.10)
   at Java.lang.ClassLoader.defineClass(libgcj.so.10)
   at Java.security.SecureClassLoader.defineClass(libgcj.so.10)
   at Java.net.URLClassLoader.findClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.VMClassLoader.defineClass(libgcj.so.10)
   at Java.lang.ClassLoader.defineClass(libgcj.so.10)
   at Java.security.SecureClassLoader.defineClass(libgcj.so.10)
   at Java.net.URLClassLoader.findClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.Class.forName(libgcj.so.10)
   at Java.lang.Class.initializeClass(libgcj.so.10)
   ...11 more
Java.lang.reflect.InvocationTargetException
   at Java.lang.reflect.Method.invoke(libgcj.so.10)
   at org.Apache.catalina.startup.Bootstrap.load(Bootstrap.Java:261)
   at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:413)
Caused by: Java.lang.NoClassDefFoundError: org.Apache.catalina.mbeans.ServerLifecycleListener
   at Java.lang.Class.initializeClass(libgcj.so.10)
   at Java.lang.Class.newInstance(libgcj.so.10)
   at org.Apache.Tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.Java:206)
   at org.Apache.Tomcat.util.digester.Rule.begin(Rule.Java:153)
   at org.Apache.Tomcat.util.digester.Digester.startElement(Digester.Java:1356)
   at gnu.xml.stream.SAXParser.parse(libgcj.so.10)
   at org.Apache.Tomcat.util.digester.Digester.parse(Digester.Java:1642)
   at org.Apache.catalina.startup.Catalina.load(Catalina.Java:524)
   at org.Apache.catalina.startup.Catalina.load(Catalina.Java:562)
   at Java.lang.reflect.Method.invoke(libgcj.so.10)
   ...2 more
Caused by: Java.lang.ClassNotFoundException: javax.management.modelmbean.ModelMBeanNotificationBroadcaster not found in org.Apache.catalina.loader.StandardClassLoader{urls=[file:/opt/Apache-Tomcat-6.0.35/lib/,file:/opt/Apache-Tomcat-6.0.35/lib/el-api.jar,file:/opt/Apache-Tomcat-6.0.35/lib/jasper-el.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-i18n-fr.jar,file:/opt/Apache-Tomcat-6.0.35/lib/jsp-api.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina.jar,file:/opt/Apache-Tomcat-6.0.35/lib/jasper.jar,file:/opt/Apache-Tomcat-6.0.35/lib/servlet-api.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina-tribes.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina-ha.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-dbcp.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-coyote.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-i18n-ja.jar,file:/opt/Apache-Tomcat-6.0.35/lib/ecj-3.7.jar,file:/opt/Apache-Tomcat-6.0.35/lib/catalina-ant.jar,file:/opt/Apache-Tomcat-6.0.35/lib/Tomcat-i18n-es.jar,file:/opt/Apache-Tomcat-6.0.35/lib/annotations-api.jar], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/opt/Apache-Tomcat-6.0.35/bin/bootstrap.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
   at Java.net.URLClassLoader.findClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.VMClassLoader.defineClass(libgcj.so.10)
   at Java.lang.ClassLoader.defineClass(libgcj.so.10)
   at Java.security.SecureClassLoader.defineClass(libgcj.so.10)
   at Java.net.URLClassLoader.findClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.VMClassLoader.defineClass(libgcj.so.10)
   at Java.lang.ClassLoader.defineClass(libgcj.so.10)
   at Java.security.SecureClassLoader.defineClass(libgcj.so.10)
   at Java.net.URLClassLoader.findClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.ClassLoader.loadClass(libgcj.so.10)
   at Java.lang.Class.forName(libgcj.so.10)
   at Java.lang.Class.initializeClass(libgcj.so.10)
   ...11 more
5
gAMBOOKa

あなたはSun JREではなくGCJを実行しているようです、GNU Javaコンパイラ、末尾にある「libgcj.so」に基づいています)スタックトレース行これは、Java_HOME、JRE_HOME、またはPATH変数のいずれかに問題がある可能性が高いです。

3
David Levesque

同じ問題がありました。私の場合、Tomcat6-> Tomcat7から移行しており、Tomcat6から同じ方法で構成したアプリケーションをそのままにして、Tomcat7でそれを起動しようとしました。ただし、Tomcat7のデフォルトのserver.xml構成では、サーバーライフサイクルリスナーは使用されません(<Listener className="org.Apache.catalina.mbeans.ServerLifecycleListener" />)。 Tomcat7用に移行したいアプリケーションの再構成を検討してください(私が思うに好ましい方法です)。または、この場合はserver.xmlからサーバーライフサイクルリスナーを削除します。

17
michal.kreuzman