DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Introduction
Referring to beans from other Jar not included in the same Ear is not as simple as in case they are included in one Ear. There are three ways to accomplish this purpose.
Jar with referred bean
Java code
@Stateless(name="JmsDispatcherGate")
public class JmsDispatcherGateImpl implements DispatcherGateLocal, DispatcherGateRemote {
@Local
public interface DispatcherGateLocal {
@Remote
public interface DispatcherGateRemote {
Geronimo's specific XML
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1" xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0" xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
<sys:environment>
<sys:moduleId>
<sys:groupId>my.app.dispatcher</sys:groupId>
<sys:artifactId>Dispatcher</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:moduleId>
</sys:environment>
</openejb-jar>
Referring with @EJB(mappedName="...") + openejb-jar.xml
package my.app.services;
@Stateless(name = "Sender")
public class SenderImpl {
@EJB(mappedName="Dispatcher/JmsDispatcherGate")
private DispatcherGateRemote dispatcherGate = null;
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
<sys:environment>
<sys:moduleId>
<sys:groupId>my.app.services</sys:groupId>
<sys:artifactId>Services</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:moduleId>
<!-- only dependency is required -->
<sys:dependencies>
<sys:dependency>
<sys:groupId>my.app.dispatcher</sys:groupId>
<sys:artifactId>Dispatcher</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:dependency>
</sys:dependencies>
</sys:environment>
</openejb-jar>
Referring with @EJB(name="") + openejb-jar.xml
package my.app.services;
@Stateless(name = "Sender")
public class SenderImpl {
@EJB(name="dispatcher")
private DispatcherGateRemote dispatcherGate = null;
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
<sys:environment>
<sys:moduleId>
<sys:groupId>my.app.services</sys:groupId>
<sys:artifactId>Services</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:moduleId>
<sys:dependencies>
<sys:dependency>
<sys:groupId>my.app.dispatcher</sys:groupId>
<sys:artifactId>Dispatcher</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:dependency>
</sys:dependencies>
</sys:environment>
<enterprise-beans>
<session>
<ejb-name>Sender</ejb-name>
<ejb-ref>
<!-- @EJB(name="dispatcher") DispatcherGateRemote dispatcherGateRemote; -->
<ref-name>dispatcher</ref-name>
<nam:pattern xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1">
<nam:artifactId>Dispatcher</nam:artifactId>
<nam:name>JmsDispatcherGate</nam:name>
</nam:pattern>
</ejb-ref>
</session>
</enterprise-beans>
</openejb-jar>
Referring with @EJB(no name) + openejb-jar.xml
package my.app.services;
@Stateless(name = "Sender")
public class SenderImpl {
@EJB
private DispatcherGateRemote dispatcherGate = null;
...
}
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2">
<sys:environment>
<sys:moduleId>
<sys:groupId>my.app.services</sys:groupId>
<sys:artifactId>Services</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:moduleId>
<sys:dependencies>
<sys:dependency>
<sys:groupId>my.app.dispatcher</sys:groupId>
<sys:artifactId>Dispatcher</sys:artifactId>
<sys:version>1.0</sys:version>
<sys:type>jar</sys:type>
</sys:dependency>
</sys:dependencies>
</sys:environment>
<enterprise-beans>
<session>
<ejb-name>Sender</ejb-name>
<ejb-ref>
<!-- @EJB DispatcherGateRemote dispatcherGateRemote; -->
<ref-name>my.app.services.SenderImpl/dispatcherGate</ref-name>
<nam:pattern xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1">
<nam:artifactId>Dispatcher</nam:artifactId>
<nam:name>JmsDispatcherGate</nam:name>
</nam:pattern>
</ejb-ref>
</session>
</enterprise-beans>
</openejb-jar>