Session EJB and Servlet as Different EAR Modules, JNDI Lookup: Difference between revisions
No edit summary |
|||
Line 6: | Line 6: | ||
This example describes the look up of an EJB and subsequent invocation, when the EJB and the calling component (a servlet, in this case) are deployed in different modules, but part of the same EAR. The lookup is done via JNDI. | This example describes the look up of an EJB and subsequent invocation, when the EJB and the calling component (a servlet, in this case) are deployed in different modules, but part of the same EAR. The lookup is done via JNDI. | ||
More details on JEE module isolation in JBoss are available here: | |||
* [[WildFly_ee_Subsystem_Configuration#ear-subdeployments-isolated|ee Subsystem Configuration - ear-subdeployments-isolated]] | |||
* [[]] | |||
=GitHub Example= | =GitHub Example= |
Revision as of 18:15, 24 March 2017
Internal
Overview
This example describes the look up of an EJB and subsequent invocation, when the EJB and the calling component (a servlet, in this case) are deployed in different modules, but part of the same EAR. The lookup is done via JNDI.
More details on JEE module isolation in JBoss are available here:
GitHub Example
Business Interface Type Access
The EJB code and the calling servlet component are deployed as part of two different EAR modules.
EJB Lookup
The EJB reference is looked up in JNDI using the portable JNDI EJB naming scheme.
In this case, the EJB is named SimpleStatelessBean, it is deployed as part of the wrapper-servlet.war, and implements only a single business interface, so the simplest possible JNDI name is "java:module/SimpleStatelessBean". "java:app/wrapper-servlet/SimpleStatelessBean" or "java:global/wrapper-servlet/SimpleStatelessBean" would also work.
For more details on the JNDI EJB naming scheme, see:
The code that does the JNDI lookup is similar to:
SimpleStateless bean = null; ... try { InitialContext ic = new InitialContext(); SimpleStateless bean = (SimpleStateless)ic.lookup("java:global/wrapper-servlet/SimpleStatelessBean"); } catch(Exception e) { ... }
EJB Invocation
Once the EJB reference is obtained from JNDI, business interface methods can be called on its reference:
... bean.methodOne("something from servlet");