Accessing EJBs Remotely
When using OpenEJB as a stand-alone server you can connect across a network and access EJBs from a remote client. The client code for accessing an EJB's Remote Interface is the same, however to actually connect across a network to the server, you need to specify different JNDI parameters.
Short version
Using OpenEJB's default remote server implementation is pretty straight forward. You simply need to:
- Deploy your bean.
- Start the server on the IP and Port you want, 25.14.3.92 and 4201 for example.
- Use that information in your client to create an initial context
- Add the right jars to your client's classpath
So, here it is in short.
Deploy your bean with the Deploy Tool:
c:\openejb> openejb.bat deploy beans\myBean.jar
See the Deploy Tool documentation for more details on deploying beans.
Start the server:
c:\openejb> openejb.bat start -h 25.14.3.92 -p 4201
See the Remote Server command-line guide for more details on starting the Remote Server.
Create an initial context in your client as such:
Properties p = new Properties(); p.put("java.naming.factory.initial", "org.openejb.client.RemoteInitialContextFactory"); p.put("java.naming.provider.url", "25.14.3.92:4201"); p.put("java.naming.security.principal", "myuser"); p.put("java.naming.security.credentials", "mypass"); InitialContext ctx = new InitialContext(p);
If you don't have any EJBs or clients to run, try the ubiquitous Hello World example.
In OpenEJB 0.9.2 and before, add the following libraries to your clients classpath:
- openejb-x.x.x.jar
- openejb_client-x.x.x.jar
In OpenEJB 1.0 beta 1, add the following libraries to your clients classpath:
- openejb-core-10-beta1.jar
Both can be found in the lib directory where you installed OpenEJB.