| h1. The 'Deployments' element in openejb.xml |
| |
| h2. A single jar |
| |
| To include a single jar by name, just declare a 'Deployments' element with a 'jar' attribute pointing to the jar file on the file system. |
| |
| {code:xml|title=openejb.conf} |
| <openejb> |
| ... |
| <Deployments jar="c:\my\app\superEjbs.jar" /> |
| <Deployments jar="c:\someplace\purchasing.jar" /> |
| <Deployments jar="timeTrack.jar" /> |
| </openejb> |
| {code} |
| |
| The last element in the example uses a relative path to point to the ejb jar. This path will be resolved relative to the openejb.base property. So, for example, of the value of openejb.base was 'c:\timeapp\' then OpenEJB would look for the jar 'c:\timeapp\timeTrack.jar'. See the [OPENEJB:Configuration] guide for more details. |
| |
| h2. A directory of jars |
| |
| To point to a directory that contains several jar files that OpenEJB should load, simply declare a 'Deployments' element with a 'dir' attribute pointing to the directory containing the jar files. |
| |
| {code:xml|title=openejb.conf} |
| <openejb> |
| ... |
| |
| <Deployments dir="c:\my\app\beans\" /> |
| <Deployments dir="c:\crimestopper\lib" /> |
| <Deployments dir="ejbs" /> |
| <Deployments dir="beans" /> |
| </openejb> |
| {code} |
| |
| The directories listed will be searched for jars containing 'META-INF/ejb-jar.xml' files and will be added to the list of jars to load if they do. Better said, it's completely save to point to a directory containing a mix of ejbs and regular jar files. OpenEJB will simply skip over jars that do contain the required 'META-INF/ejb-jar.xml' file. |
| |
| The last Deployments element declares a 'beans' directory relative to openejb.base for holding ejb jars. This declaration is simply convention and not required. |
| |
| h2. An unpacked jar |
| |
| As of 1.0 beta1, OpenEJB supports unpacked ejb jars. Simply meaning that you don't need to pack your ejb's into a jar file in order to use them in OpenEJB. You still need to follow the ejb jar layout and include an "META-INF/ejb-jar.xml" in the directory that contains your ejbs. |
| |
| For example, if you have a directory structure like this: |
| |
| {quote} |
| C:\myapp\ |
| C:\myapp\acmeEjbs\ |
| C:\myapp\acmeEjbs\META-INF\ejb-jar.xml |
| C:\myapp\acmeEjbs\org\acme\Foo.class |
| C:\myapp\acmeEjbs\org\acme\FooBean.class |
| C:\myapp\acmeEjbs\org\acme\FooHome.class |
| C:\myapp\acmeEjbs\org\acme\Bar.class |
| C:\myapp\acmeEjbs\org\acme\BarBean.class |
| C:\myapp\acmeEjbs\org\acme\BarHome.class |
| {quote} |
| |
| Then you would delcare a 'Deployments' element with the 'dir' attribute set to 'C:\myapp\acmeEjbs' as shown below. |
| |
| {code:xml|title=openejb.conf} |
| <openejb> |
| ... |
| |
| <Deployments dir="c:\myapp\acmeEjbs" /> |
| </openejb> |
| {code} |
| |
| Note that this syntax is the same as the directory syntax above. If OpenEJB finds a META-INF directory with an 'ejb-jar.xml' fine inside, then OpenEJB will treat the directory as an unpacked ejb jar. Otherwise OpenEJB will look for ejb jar files to load as detailed in the above section. |
| |
| h1. Log file |
| |
| When trying to figure out if your ejbs were loaded, the openejb.log file is an incredible asset. |
| |
| If your ejbs were loaded successfully you should see entries like the following (1.x and higher only): |
| |
| {panel:title=openejb.log} |
| INFO : Loaded EJBs from /usr/local/openejb-1.0-beta1/beans/openejb-itests-beans.jar |
| INFO : Loaded EJBs from /usr/local/openejb-1.0-beta1/beans/openejb-webadmin-clienttools.jar |
| {panel} |
| |
| If your ejbs failed to load, you will see an entry similar to the following. |
| |
| {panel:title=openejb.log} |
| WARN : Jar not loaded. /usr/local/openejb-1.0-beta1/beans/helloworld.jar. Jar failed validation. Use the validation tool for more details |
| {panel} |
| |
| Additionally, all the successfully loaded ejbs are individually listed in the log file at startup. The Deployment ID listed is the JNDI name used to lookup the ejb from a client of the Local or Remote Servers. The beans listed below are from our test suite. |
| |
| {noformat} |
| DEBUG: Deployments : 19 |
| DEBUG: Type Deployment ID |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/RMI-over-IIOP/EJBHome |
| DEBUG: STATEFUL client/tests/stateful/EncBean |
| DEBUG: STATELESS client/tests/stateless/BeanManagedBasicStatelessHome |
| DEBUG: STATEFUL client/tests/stateful/BasicStatefulHome |
| DEBUG: STATELESS client/tests/stateless/EncBean |
| DEBUG: STATEFUL client/tests/stateful/BeanManagedTransactionTests/EJBHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/RMI-over-IIOP/EJBHome |
| DEBUG: STATEFUL client/tests/stateful/RMI-over-IIOP/EJBHome |
| DEBUG: STATELESS client/tests/stateless/BeanManagedTransactionTests/EJBHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/allowed_operations/EntityHome |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/EncBean |
| DEBUG: STATEFUL client/tests/stateful/BeanManagedBasicStatefulHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/BasicBmpHome |
| DEBUG: STATELESS client/tests/stateless/BasicStatelessHome |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/BasicCmpHome |
| DEBUG: STATELESS client/tools/DatabaseHome |
| DEBUG: CMP_ENTITY client/tests/entity/cmp/allowed_operations/EntityHome |
| DEBUG: BMP_ENTITY client/tests/entity/bmp/EncBean |
| DEBUG: STATELESS client/tests/stateless/RMI-over-IIOP/EJBHome |
| {noformat} |