The naming space xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
defines following tags used to reference EJB resources in a deployment plan.
Reference Type | Tags | Usage |
---|---|---|
EJB reference | <nam:ejb-ref/> | Reference EJB remote interface |
EJB reference | <nam:ejb-loc-ref/> | Reference EJB local interface |
EJB reference
For example, a EJB session bean is defined in its ejb-jar.xml:
Code Block | ||||
---|---|---|---|---|
| ||||
<session> <ejb-name>SampleBean</ejb-name> <business-remote>com.ibm.wasce.samples.SampleBeanRemote</business-remote> <business-local>com.ibm.wasce.samples.SampleBeanLocal</business-local> <ejb-class>com.ibm.wasce.samples.SampleBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> |
and in its openejb-jar.xml:
Code Block | ||||
---|---|---|---|---|
| ||||
<dep:moduleId> <dep:groupId>com.ibm.wasce.samples</dep:groupId> <dep:artifactId>SampleEJB</dep:artifactId> <dep:version>2.1.1.1</dep:version> <dep:type>jar</dep:type> </dep:moduleId> |
To reference this session bean in a Java EE application, you first have to define the dependency on this bean and then use the <ejb-ref> or <ejb-local-ref> element to map a reference to the EJB's home interface.
Code Block | ||||
---|---|---|---|---|
| ||||
<dep:dependency> <dep:groupId>com.ibm.wasce.samples</dep:groupId> <dep:artifactId>SampleEJB</dep:artifactId> <dep:version>2.1.1.1</dep:version> <dep:type>jar</dep:type> </dep:dependency> |
EJB remote reference
You can use the <ejb-ref> element in your deployment plan to map a reference to an EJB's remote home interface.
Code Block | ||||
---|---|---|---|---|
| ||||
<nam:ejb-ref> <nam:ref-name>ejb/SessionBean</nam:ref-name> <nam:ref-link>SampleBean</nam:ref-link> </nam:ejb-ref> |
The <ref-name> element is the name of the remote home interface used in your module. The JNDI name used for this example will be java:/comp/env/ejb/SessionBean
and it should map to the ejb-ref-name
provided in the Java EE deployment descriptor:
Code Block | ||||
---|---|---|---|---|
| ||||
<ejb-ref> <ejb-ref-name>ejb/SessionBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <remote>com.ibm.wasce.samples.SampleBeanRemote</remote> </ejb-ref> |
Now you can reference the EJB in the application by the JNDI name java:comp/env/ejb/SessionBean
.
EJB local reference
You can use the <ejb-local-ref> element in your deployment plan to map a reference to an EJB's local home interface.
Code Block | ||||
---|---|---|---|---|
| ||||
<nam:ejb-local-ref> <nam:ref-name>ejb/SessionBean</nam:ref-name> <nam:ejb-link>SampleBean</nam:ejb-link> </nam:ejb-local-ref> |
The <ref-name> element is the name of the local home interface used in your module. The JNDI name used for this example will be java:/comp/env/ejb/SessionBean
and it should map to the ejb-ref-name
provided in the Java EE deployment descriptor:
Code Block | ||||
---|---|---|---|---|
| ||||
<ejb-local-ref> <ejb-ref-name>ejb/SessionBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local>com.ibm.wasce.samples.SampleBeanLocal</local> </ejb-local-ref> |
Now you can reference the EJB in the application by the JNDI name java:comp/env/ejb/SessionBean
.
Global JNDI reference for EJB objects
Session beans and entity beans will be bound automatically into a global JNDI context. An EJB's JNDI name is in the following format:
No Format |
---|
{deploymentId}{interfaceType.annotationName} |
You can customize the global JNDI name. See OpenEJB JNDI names for more details about JNDI name formatting.