When you have EAR and some objects are passed between WAR and EJB jar the library with class of that object must be located at EAR/lib. If you keep duplicates, then you will have ClassCastException because class will be loaded by two different classloaders.
library placement in seam-gen'ed apps is controlled by the top-level files deployed-jars-ear.list and deployed-jars-war.list. The jars mentioned in deployed-jars-ear.list end up in the EAR/lib directory, and are accessible by all modules of the application. Those from deployed-jars-war.list end in WEB-INF/lib, and are only available to the web-app.
Yes that's exactly what is happening.
Just one followup... and I think others might benefit from this:
So what is actually supposed to be in web-inf/lib of the top-level project? If I move everything from there to the EAR then I should take all the entries out of application.xml?
Then I think I link the top-level to the dependencies in the EAR with the manifest files?
Hope that makes sense. Thanks again for any help.
I saw this doc and looked for those .list files but they're not anywhere around. The project was made in JBoss DS by selecting new-New Seam Web Project
Are these normally put in manually? From what I was reading they show up with a jumpstart tool called SeamGen.. but we aren't using this.