The EJB mediator calls an external Enterprise JavaBean(EJB) and stores the result in the message payload or in a message context property. Currently, this mediator supports EJB3 Stateless Session Beans and stateful session beans.
Syntax
<ejb beanstalk="string" class="string" [sessionId="string"] [remove="true | false"] [method="string"] [target="string | {xpath}"] [jndiName="string"] /> <args> <arg (value="string | {xpath}")/>* </args> </ejb>
EJB specific options
EJB mediator field descriptions,
Field Name | Description |
---|---|
Beanstalk ID | Reference to the application server specific connection source information, which is defined at the synapse.properties . |
Class | This required the remote interface definition provided in the EJB 3.0 (EJB service invocation remote/home interface). |
Session ID | When the invoke ejb context in the form state-full bean then the related ejb session status specif id will be stored in here. Expression/Value . |
Remove | Once invoke state-full/stateless session user can force and ask the Enterprise entity manager to remove the ejb context related parameters. |
Target | If a particular EJB method returns then the return object can be saved against the the name provided in the target at the synapse property context Expression/Value. |
JNDI Name | The Java Naming and Directory Interface (JNDI) is an application programming interface (API) for accessing different kinds of naming and directory services. JNDI is not specific to a particular naming or directory service, it can be used to access many different kinds of systems including file systems; distributed objects systems like CORBA, Java RMI, and EJB; and directory services like LDAP, Novell NetWare, and NIS+ |
Method Arguments | Can be used to define the arguments which is required for the particular ejb method to be invoked Expression/Value. |
Example
<ejb beanstalk="jack" class="org.ejb.wso2.test.StoreRegister" method="getStoreById" target="store" jndiName="ejb:/EJBDemo/StoreRegsiterBean!org.ejb.wso2.test.StoreRegister"> <args> <arg xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" value="{get-property('loc_id')}"/> </args> </ejb>
In this example, the EJB Mediator does the EJB service invocation by getStoreById pubished at the application server and exposed via ejb:/EJBDemo/StoreRegsiterBean!org.ejb.wso2.test.StoreRegister,
then response will be assigned to the target specified (variable/expression).