The following was posted to the Geronimo forum on Nabble, but, AFAICT, never made it to a mailing list or moderation. Reposting, now...
See http://apache-geronimo.328035.n3.nabble.com/shared-lib-classloader-XStream-Jettison-issue-tt3144897.html > > Hi, > I am using Geronimo Little G 2.2.1 and have a deployment plan which > utilizes the shared lib and it seems to work for the most part. But when my > app (a web application) tries to use XStream for serializing JSON (xstream > uses Jettison Internally) I get ClassNotFoundException. Please note that all > the jars the application uses are from the shared library and it has a copy > of XStream and Jettison. > > I can see that the XStream is getting loaded from > $GERONIMO_HOME/lib/xstream.jar and is loaded by the system classloader. In > my application deployment plan I have given "hidden-classes" to exclude > XStream and Jettion but its not getting picked up from the shared lib. The > only way I can get the app to work is if I put the Jettison.jar into the JVMs > ext directory, it does not work even if I put the jettion.jar into > $GERONIMO_HOME/lib where it is loading xstream.jar. > > I am suspecting that since my application uses shared lib , shared lib's > classloader gets to load everything first and the policy there probably is to > load everything from its parent and is why my application plan's > "hidden-classes" is not working. I tried placing the jar in all spots where > one would expect the classes to be picked up (WEB-INF/libs, > repository/org/.../jettison.jar, $GERONIMO/lib/endorsed). > > Is there a way I can specify the "hidden-classes" for the shared lib module? > Or am I doing something totally wrong?
