EJB packaging is very flexible. You can include all referenced classes via physical inclusion or reference. I would view app exception classes as part of the contract, similar to interfaces. It's a good practice to package them into a sharable jar file, just as you did.
When I packaged my app exception class into EAR/lib/appexception.jar, I got the same tx-not-rollback problem. Essentially the @ApplicationException is ignored and not processed at deployment time. This needs to be corrected. Can you file a bug in glassfish issue tracker (
https://glassfish.dev.java.net/servlets/ProjectIssues)?
Another side of this bug is, when you have a unchecked application exception with rollback=false, I guess the current glassfish would incorrectly roll it back.
Thanks,
-cheng
[Message sent by forum member 'cf126330' (cf126330)]
http://forums.java.net/jive/thread.jspa?messageID=281322