openejb start - OpenEJB Remote Server
openejb start #options
The OpenEJB Remote Server can be started by running the openejb.bat script for windows and the openejb script for Linux and other Unix based OSes. Before running these scripts you need to set the environment variable OPENEJBHOME_ to the path of the directory where you unpacked the OpenEJB installation.
From now on we will refer to this directory as
In Windows, the remote server can be executed as follows:
C:\openejb-3.0> bin\openejb start
In UNIX, Linux, or Mac OS X, the deploy tool can be executed as follows:
`[user@host openejb-3.0](user@host-openejb-3.0.html)
Depending on your OpenEJB version, you may need to change execution bits to make the scripts executable. You can do this with the following command.
`[user@host openejb-3.0](user@host-openejb-3.0.html)
From here on out, it will be assumed that you know how to execute the right openejb script for your operating system and commands will appear in shorthand as show below.
openejb start -help
Starts OpenEJB as an EJB Server that can be accessed by remote clients via the OpenEJB Remote Server.
ALWAYS check your openejb.log file for warnings immediately after starting the Remote Server.
OpenEJB issues warnings when it works around a potential problem, encounters something it didn't expect, or when OpenEJB wants to let you know something may not work as you expected it.
OpenEJB itself is configured with the OpenEJB configuration file, which is extremely simple and self-documenting. This file is located at c:\openejb-3.0\conf\openejb.xml.
| -D
| --examples | Show examples of how to use the
options. |
| -h, --help | Print this help message. |
| --hsql-bind
openejb start
That's it. The ejbd will start up and bind to IP 127.0.0.1 and port 4201.
The following properties would then be used to get an InitialContext from the Remote Server.
java.naming.factory.initial =
org.apache.openejb.client.RemoteInitialContextFactory java.naming.provider.url = ejbd://127.0.0.1:4201 java.naming.security.principal = myuser java.naming.security.credentials = mypass
openejb start --conf=C:\openejb-3.0\conf\mytest.conf
Sets the openejb.configuration system variable to the file C:\openejb\conf\mytest.conf. When the server starts up and initializes OpenEJB, this configuration will be used to assemble the container system and load beans.
The local-copy option controls whether Remote interface arguments and results are always copied.
openejb start --local-copy=true (default)
Remote interface business method arguments and results are always copied (via serialization), which is compliant with the EJB standard.
openejb start --local-copy=false
Remote interface business method arguments and results are copied only when the client is in a different JVM. Otherwise, they are passed by reference - as if it were a Local interface. This is faster, of course, but non-compliant with the EJB standard.
Local interfaces are not affected; their arguments and results are passed by reference and never copied.
openejb start -Dejbd.bind=10.45.67.8
This is the most common way to use the EJBd Server Service. The service will start up and bind to IP 10.45.67.8 and port 4201. The following properties would then be used to get an InitialContext from the EJBd Server Service.
java.naming.factory.initial =
org.apache.openejb.client.RemoteInitialContextFactory java.naming.provider.url = ejbd://10.45.67.8:4201 java.naming.security.principal = myuser java.naming.security.credentials = mypass
DNS names can also be used.
openejb start -Dejbd.bind=myhost.foo.com
The following properties would then be used to get an InitialContext from the Remote Server.
java.naming.factory.initial =
org.apache.openejb.client.RemoteInitialContextFactory java.naming.provider.url = ejbd://myhost.foo.com:4201 java.naming.security.principal = myuser java.naming.security.credentials = mypass
openejb start -Dtelnet.bind=myhost.foo.com
The following properties would then be used to log into the server via a telnet client as such:
telnet myhost.foo.com 4202
openejb start -Dejbd.port=8765
The server will start up and bind to IP 127.0.0.1 and port 8765.
The following properties would then be used to get an InitialContext from the Remote Server.
java.naming.factory.initial =
org.apache.openejb.client.RemoteInitialContextFactory java.naming.provider.url = ejbd://127.0.0.1:8765 java.naming.security.principal = myuser java.naming.security.credentials = mypass
openejb start -Dhttpejbd.port=8888
The server will start up and the EJB over HTTP service will bind to IP 127.0.0.1 and port 8888.
The following properties would then be used to get an InitialContext from the HTTP/Remote Server.
java.naming.factory.initial =
org.apache.openejb.client.RemoteInitialContextFactory java.naming.provider.url = http://127.0.0.1:8888/openejb java.naming.security.principal = myuser java.naming.security.credentials = mypass
openejb start -Dadmin.only_from=192.168.1.12
Adds 192.168.1.12 to the list of IP addresses that are authorized to shutdown the server or access the server via a telnet client. The host that this server was started on is always allowed to administer the server.
Multiple hosts can be given administrative access to this server by listing all the host names separated by commas as such:
openejb start -Dadmin.only_from=192.168.1.12,joe.foo.com,robert
The first host in the string names the host explicitly using an IP address (192.168.1.12).
The second host uses a DNS name (joe.foo.com) to refer to the hosts IP address. The DNS name will be resolved and the IP will be added to the admin list.
The third address refers to a the host by a name (robert)that the opperating system is able to resolve into a valid IP address. This is usually done via a hosts file, interal DNS server, or Windows Domain Server.
openejb start -Dejbd.threads=200
Sets the max number of concurrent threads that can enter the EJBd Server Service to 200.
openejb start -Dtelnet.disabled=true
Prevents the Telnet Server Service from starting when the OpenEJB Server starts.
Once you start OpenEJB using the openejb start command the following output will be seen on the console
Apache OpenEJB 3.0 build: 20070825-01:10
http://tomee.apache.org/
OpenEJB ready.
[OPENEJB:init]
OpenEJB Remote Server * Starting Services * NAME IP PORT httpejbd 0.0.0.0 4204 telnet 0.0.0.0 4202 ejbd 0.0.0.0 4201 hsql 0.0.0.0 9001 admin thread 0.0.0.0 4200 ------- Ready!