Put the .war and the .jar in an .ear .
My goal was to keep jakarta-oro.jar in WEB-INF/lib. But now after looking at the JBoss AdminDeveloper doc, I see what is going on and why it can never go in WEB-INF/lib.
The dependent class that uses oro is loaded from a top-level common .jar in my ear which is loaded through the JBoss unified classloader. Reading the AdminDev Doc, I found out that everything in a war at WEB-INF/lib and WEB-INF/classes is loaded by the servlet container's classloader (in this case Tomcat 4.1.24). Classes loaded through the servlet container are not visible to anything outside of the servlet container. So, eventhough oro is loaded in WEB-INF/lib, the dependent class in the Jboss UCL cannot see the oro classes!
I'll have to concede and load jakarta-oro in server/default/lib, oh well.