I'm not even trying to start a web app, just the server.
So everything was fine until I clicked the back button on a the second JIRA config window. After that I couldn't get anything to work. Now, after reinstalling tomcat from a fresh download, I get the following in catalina.out:
Apr 14, 2010 9:18:01 p.m. org.apache.tomcat.util.digester.Digester startElement
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:1276)
at gnu.xml.stream.SAXParser.parse(libgcj.so.10)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at java.lang.reflect.Method.invoke(libgcj.so.10)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:267)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.lang.ClassNotFoundException: javax.management.modelmbean.ModelMBean not found in org.apache.catalina.loader.StandardClassLoader{urls=[file:/usr/local/apache-tomcat-5.5.28/server/classes/,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-jkstatus-ant.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-util.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-optional.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/commons-modeler-2.0.1.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/servlets-default.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-ant.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-apr.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-ajp.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-ant-jmx.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/servlets-webdav.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-coyote.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-storeconfig.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-cluster.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-http.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/servlets-invoker.jar], parent=org.apache.catalina.loader.StandardClassLoader{urls=[file:/usr/local/apache-tomcat-5.5.28/common/classes/,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-ja.jar,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-en.jar,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-es.jar,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-fr.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jsp-api.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jasper-runtime.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jasper-compiler.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/commons-el.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/naming-factory-dbcp.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/servlet-api.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/naming-resources.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jasper-compiler-jdt.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/naming-factory.jar], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/local/apache-tomcat-5.5.28/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:267)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
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:1276)
at gnu.xml.stream.SAXParser.parse(libgcj.so.10)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
at org.apache.catalina.startup.Catalina.load(Catalina.java:490)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at java.lang.reflect.Method.invoke(libgcj.so.10)
...2 more
Caused by: java.lang.ClassNotFoundException: javax.management.modelmbean.ModelMBean not found in org.apache.catalina.loader.StandardClassLoader{urls=[file:/usr/local/apache-tomcat-5.5.28/server/classes/,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-jkstatus-ant.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-util.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-optional.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/commons-modeler-2.0.1.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/servlets-default.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-ant.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-apr.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-ajp.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-ant-jmx.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/servlets-webdav.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-coyote.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-storeconfig.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina-cluster.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/catalina.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/tomcat-http.jar,file:/usr/local/apache-tomcat-5.5.28/server/lib/servlets-invoker.jar], parent=org.apache.catalina.loader.StandardClassLoader{urls=[file:/usr/local/apache-tomcat-5.5.28/common/classes/,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-ja.jar,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-en.jar,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-es.jar,file:/usr/local/apache-tomcat-5.5.28/common/i18n/tomcat-i18n-fr.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jsp-api.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jasper-runtime.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jasper-compiler.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/commons-el.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/naming-factory-dbcp.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/servlet-api.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/naming-resources.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/jasper-compiler-jdt.jar,file:/usr/local/apache-tomcat-5.5.28/common/lib/naming-factory.jar], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/usr/local/apache-tomcat-5.5.28/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
I have never seen gjc working as a replacement for a complete Sun JVM. I would remove gjc and try with the full Sun JVM instead.
Kees Jan
Thanks Kees Jan,
Unfortunately, this all happened as a result of installing a .rpm.bin file that I downloaded from the Oracle/Sun site. The java structure on SuSE linux is less than clear to me, as the jdk and jre live in a place called /usr/lib/jvm/<java release>. For the 1.6.0-OpenJDK that ships with SuSE 11, there is a link created from /etc/alternatives/java to /usr/lib/jmv/jre-1.6.0-openjdk/bin/java, which always ensure that java envoked from the command line gives you this version of the compiler. I'm not sure if that is what is causing this to fail. When I use the build.sh file for JIRA, it is not finding the 1.5 jdk. Again, not sure why it is behaving this way.
All that is to say "I don't know what-the-hoof is going here, but I'm frustrated up to my eyeballs trying alternatives.
When I tried to uninstall the 1.5 jdk using rpm, it told me the package does not exist. It doesn't show up in software installer/browser. When I try install it again, it says that the package is already installed... so I'm completely lost.
I hate the "alternatives" system. It's confusing in general, and doubly confusing to Java. So I just overrule it by setting JAVA_HOME, and adding $JAVA_HOME/bin to the PATH.
Gcj is hopeless. I just got done deploying a web service. Gcj can't do that either, so I had to go back and do what I just mentioned to get the deployment to work.
When you install Sun's Java RPM, their convention is to install the whole thing in /usr/java/xxxxxxx, where xxxxxxx is the name of the version of Java that's being installed. That way you can keep multiple JVMs (for example, 1.5 and 1.6) on the same box and let the apps determine which one they want to use (again, by doing what I just mentioned).
Customer surveys are for companies who didn't pay proper attention to begin with.