On Nov 13, 2008, at 12:23 PM, ebmm_axis wrote:


First and foremost, thanks to the openEJB team for all the efforts...

I am running openEJB as a stand alone server and haven't dove into it's use
with a full application server.
My reasoning for this is to keep things simple and just learn the ins and
outs of OpenEJB.


Using the Default Resource Adapter I am able to use MDBs successfully
throughout my application.
BUT, if I want to access any destination (queue or topic) GLOBALLY from a
'stand alone' client, I'm not able to.  (i.e. I would like to globally
resolve via JNDI my JMSConnectionFactory and the queues/topics that I have
set up in openejb.xml)

I am failing to connect the dots with the configurations required that will
provide the global JNDI name resolution.

Any comments and direction would be much appreciated.

For a standalone client that is running locally (i.e. inside the same vm as the server) you should be able to look things up by constructing an initial context exactly like this:

    InitialContext context = new InitialContext();  // no params
    context.lookup("java:openejb/Resource/theResourceName");

Where "theResourceName" is whatever you called it in your openejb.xml. That should give you access to the "java:openejb" global jndi tree.

Note that this will not work from an EJB or similar component with a "java:comp/env" namespace. We could make it available there too if you need it.

Also note that this will not work from a remote client as pretty much nothing in java:openejb/Resource is serializable. We have some code for allowing users to configure a DataSource or ConnectionFactory on the client via system properties with the ability to then look them up via JNDI. The syntax for that is like this:

java .... - DmyDataSource=datasource:org.hsqldb.jdbcDriver:jdbc:hsqldb:hsql:// localhost/mydb;user=joe;password=cool \ - DmyConnectionFactory =connectionfactory:org.apache.activemq.ActiveMQConnectionFactory:tcp:// localhost:61616 \
    org.superbiz.MyClient

You can then create an InitialContext via the RemoteInitialContextFactory and lookup "myDataSource" and get a DataSource or lookup "myConnectionFactory" and get a ConnectionFactory.

And as always we're open to new features in this regard, so if you have any ideas we'd love to hear them.

-David

Reply via email to