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