The spec does not mandate this part of the behavior. This works in glassfish because in the glassfish classloader hierarchy, all the ejb jars are loaded by the same classloader so their classes are visible to each other. This is a vendor specific behavior and does not guarantee to work in other application servers. For a portable packaging, you should refactor the part of the common logic that both ejb jars need into base classes and put them in the ear library jars and both ejb jars could reference those classes that way.
[Message sent by forum member 'hzhang_jn']
http://forums.java.net/jive/thread.jspa?messageID=483283