David Blevins wrote:
On Thu, Aug 26, 2004 at 01:38:51AM +0200, Jacek Laskowski wrote:
Mark Lybarger wrote:
is it possible for me to configure openejb to make available a
datasource outside of using a resource-ref?
You don't have to use resource-ref. You can declare
InitialContextFactory as the Local or Remote one of OpenEJB and use the
stuff bound to it. Resource-refs are the way to abstract a code from the
real container of these refs. Using resource-ref allows you to make
changes to resource configuration outside of your code (no recompilation
necessary then).
Just attach itself to OpenEJB JNDI via the Local or Remote
InitialContext (see http://www.openejb.org/embedded.html or
http://www.openejb.org/remote-server.html) and lookup what's available
casting where required to the appropriate type, e.g. javax.sql.DataSource.
A couple corrections: using resourc-refs is the only J2EE or EJB
compliant way to get a DataSource from an enterprise bean; datasources
aren't available through either the Local or Remote InitialContext
implementations.
The compliant way is to do this:
<resource-ref>
<res-ref-name>my/favorite/datasource/foo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
i'm just curious why you imply that a bean can't do soemthing like?:
Properties props = new Properties();
// put jndi class name.
// put ip address.
Context remoteContext = new InitialContext( props);
These are all valid ways to get that datasource.
-----------------
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)
ctx.lookup("java:comp/env/my/favorite/datasource/foo");
-----------------
Context ctx = new InitialContext();
ctx = (Context) ctx.lookup("java:comp/env");
// ...
DataSource ds = (DataSource) ctx.lookup("my/favorite/datasource/foo");
-----------------
Context ctx = new InitialContext();
ctx = (Context) ctx.lookup("java:comp/env");
// ...
ctx = (Context) ctx.lookup("my/favorite");
// ...
DataSource ds = (DataSource) ctx.lookup("datasource/foo");
-----------------
Everything the bean looks up from JNDI must be relative to
"java:comp/env" in one way or another.
-David