I'd put everything in an EAR.
Deploy your common classes as jar files inside the EAR, and reference them in the application.xml file (). Deploy your SARs in the EAR, and reference them in the jboss-app.xml file ().
I am having the same problem. The only difference I am loading my custom libraries from within a WAR. On investigations I would say the problem occurs when I deploy updated classes on my library structure.
Were you able to resolve this error?
I kinda resolved it but it wasn't pretty. Needless to say, I don't like the way Java and JBoss handle their class loading. The whole thing needs to be revamped.
Anyway, I ended up fixing it by putting all my jars in the deploy directory and then putting my sar files without jars into the farm directory. The reason this works is because the deploy directory is loaded first and all the classes in the jars are loaded globaly into the app server. Then the farm directory loads and the sees the classes.
The only down side is the when you have to update you're code, you have to copy it to all the servers and then restart them to have the code update. So you basically loose the functionallity of runtime deploying.... But lets face it, Dynamic deployment just complicates things. On the other hand, I can easily deploy the configuration/instance mbeans easliy.
I've recently switched to .NET and at first glance, it's quite nice.
I hope this helps. Again, It's not that pretty.