= Remote Server
:index-group: OpenEJB Standalone Server
:jbake-date: 2018-12-05
:jbake-type: page
:jbake-status: published


!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:

[arabic]
. 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:

[source,java]
----
c:\openejb> openejb.bat deploy beans\myBean.jar
----

See the openejbx30:deploy-tool.html[OPENEJBx30:Deploy Tool]
documentation for more details on deploying beans.

Start the server:

[source,java]
----
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:

[source,java]
----
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.
