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.
Using OpenEJB's default remote server implementation is pretty straight forward. You simply need to:
So, here it is in short.
Deploy your bean with the Deploy Tool:
c:\openejb> openejb.bat deploy beans\myBean.jar
See the OPENEJBx30:Deploy Tool documentation for more details on deploying beans.
Start the server:
c:\openejb> openejb.bat start -h 220.127.116.11 -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://18.104.22.168: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. Add the following library to your clients classpath:
Both can be found in the lib directory where you installed OpenEJB or in Maven repositories.
All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.