Did not see your deployment plan, so I guess the shared lib artifact is added as a dependency, and use the hidden-classes configurations there, right ?
The following was posted to the Geronimo forum on Nabble, but, AFAICT, never made it to a mailing list or moderation. Reposting, now...
> 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?