c:\openejb> openejb.bat deploy beans\myBean.jar
Remote Server
!http://www.openejb.org/images/diagram-remote-server.gif|valign=top, align=right, hspace=15! # 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:
See the openejbx30:deploy-tool.html[OPENEJBx30: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.apache.openejb.client.RemoteInitialContextFactory");
p.put("java.naming.provider.url", "ejbd://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 openejbx30:hello-world.html[Hello World] example. Add the following library to your clients classpath:
-
openejb-client-x.x.x.jar
-
javaee-api-x.x.jar
Both can be found in the lib directory where you installed OpenEJB or in Maven repositories.