On Wed, 2005-03-09 at 07:25 -0800, Anthony Green wrote:
On Wed, 2005-03-09 at 11:12 +0100, Nicolas Mailhot wrote:
> A look at how JPackage packages other JVMs (closed stuff I know:() would
> be pretty enlightening I think. I know the documentation can be hard to
> grasp without concrete examples.
Ok, I think the answer is that java-gcj-compat needs to create the
following symlinks...
# ls -l /usr/lib/jvm-exports/java-1.4.2-gcj-1.4.2.0/
total 12
lrwxrwxrwx 1 root root 32 Mar 9 07:13 jaas.jar -> /usr/share/java/libgcj-4.0.0.jar
lrwxrwxrwx 1 root root 32 Mar 9 07:11 jdbc-stdext.jar ->
/usr/share/java/libgcj-4.0.0.jar
lrwxrwxrwx 1 root root 32 Mar 9 07:11 jndi.jar -> /usr/share/java/libgcj-4.0.0.jar
fitzsim: do you agree?
I've got new java-1.4.2-gcj-compat packages here that add these
symlinks. I'm holding off building them into beehive until FC4test1 has
branched.
Now tomcat5 gets a lot further, and we hit something new....
# cat /var/log/tomcat5/catalina.out
Bootstrap: Class loader creation threw exception
java.lang.NoClassDefFoundError: while resolving class:
javax.management.MBeanServerFactory
at java.lang.VMClassLoader.transformException(java.lang.Class, java.lang.Throwable)
(/usr/lib/libgcj.so.6.0.0)
at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.6.0.0)
at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.6.0.0)
at org.apache.catalina.startup.Bootstrap.createClassLoader(java.lang.String,
java.lang.ClassLoader) (Unknown Source)
at org.apache.catalina.startup.Bootstrap.initClassLoaders() (Unknown Source)
at org.apache.catalina.startup.Bootstrap.init() (Unknown Source)
at org.apache.catalina.startup.Bootstrap.main(java.lang.String[]) (Unknown Source)
at gnu.java.lang.MainThread.call_main() (/usr/lib/libgcj.so.6.0.0)
at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)
Caused by: java.lang.ClassNotFoundException: mx4j.log.Logger not found in
gnu.gcj.runtime.SystemClassLoader{urls=[],
parent=gnu.gcj.runtime.VMClassLoader{urls=[file:/usr/share/java/ext/com-sun-tools-doclets-Taglet-0.7.1.jar],
parent=null}}
I've been seeing that message too. First of all, why does the urls
field of VMClassLoader not print *all* jars in the extensions directory?
Is this a libgcj bug? The other annoying thing is the difference
between /usr/share/java-ext, /usr/lib/java-ext and /usr/share/java/ext.
We either need to change the JPackage standard to point
to /usr/share/java/ext or we need to hard-code /usr/share/java-ext
and /usr/lib/java-ext into libgcj as extensions directories. Defining
java.ext.dirs in all the wrapper scripts is turning out to be quite
fragile. In this case the mx4j jar probably installs
in /usr/share/java-ext and it doesn't look like java.ext.dirs is getting
set properly (to /usr/share/java-ext:/usr/lib/java-ext) for you.
Tom