Hi folks,
I have come across a strange problem.
We have a running instance of Jahia which we have attempted to clone (to produce a "hot-swap" standby machine - long story there...).
Initially the key directories on the production server were copied to the second machine with rsync. Everything appeared fine until I clicked through to certain pages where an exception is thrown and the page only half completed. On first load (only) of a typical erroring page after starting Jahia I was getting this in catalina.out:
107617 [Thread-48] ERROR - Root cause : Error while forwarding the Engine /jsp/jahia/templates/adg/ADG/list_page.jsp : /usr/local/j2sdk1.4.2/jre/lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory -> BAILING OUT
java.lang.UnsatisfiedLinkError: /usr/local/j2sdk1.4.2/jre/lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1477)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
at java.awt.Component.<clinit>(Component.java:506)
<snip>
On subsequent loads of the same page I was getting:
334436 [Thread-46] ERROR - Root cause : Error while forwarding the Engine /jsp/jahia/templates/adg/ADG/list_page.jsp : null -> BAILING OUT
java.lang.NoClassDefFoundError
at org.jahia.taglibs.categories.CategoryTag.buildJTree(CategoryTag.java:204)
at org.jahia.taglibs.categories.CategoryTag.doStartTag(CategoryTag.java:155)
at org.apache.jsp.toolbox_jsp._jspService(toolbox_jsp.java:1203)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:575)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:498)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:822)
at org.apache.jsp.list_page_jsp._jspService(list_page_jsp.java:4584)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
<snip>
On the live server (which does not produce this error) the library file libXtst.so.6 only exists in /usr/X11R6/lib/ so I rsynced this whole directory as well.
Even with this file there I still get the same error on the second server. The production server does not exhibit this error.
Looking at the source code of CategoryTag.java I see the problem appears to be with JTree - part of Swing missing?
So I removed my production clone version of Jahia and replaced it with a brand new install of the default download (jahia403_build5580.tar.gz - same version as the production server). I also replaced the JDK directory (Blackdown 1.4.2) - which had been previsouly copied with rsync - with a new install from the original .bin file.
The default install of Jahia seemingly worked fine. To test the category functions I went to Administration, switched administration modes to server, and clicked on Manage categories and got the error listed below in catalina.out:
java.lang.NoClassDefFoundError
at org.jahia.admin.categories.ManageCategories.displayCategories(ManageCategories.java:223)
at org.jahia.admin.categories.ManageCategories.userRequestDispatcher(ManageCategories.java:134)
at org.jahia.admin.categories.ManageCategories.<init>(ManageCategories.java:95)
at org.jahia.bin.JahiaAdministration.userRequestDispatcher(JahiaAdministration.java:344)
at org.jahia.bin.JahiaAdministration.service(JahiaAdministration.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
<snip>
Am I doing something really stupid?
:)
BTW this is running on Debian Linux 3.0rc1.
Chris
Chris Stephens > Technology Director
phone > +61 2 9779 0129
mobile > +61 403 074 567
fax > +61 2 9779 0199
http://www.netreturn.com.au
