You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by govinda <ba...@gmail.com> on 2009/05/04 17:19:47 UTC
JNDI context
How do I connect to a datasource thru code without context "java:comp/env"
Context envContext = (Context)initContext.lookup("java:comp/env");
I just want to connect to DB like this
DataSource ds = (DataSource)initContext.lookup("jdbc/LiferayPool");
Is it possible, if so where do I specify java jndi context ("java:comp/env")
outside the code?
Thanks
--
View this message in context: http://www.nabble.com/JNDI-context-tp23370580s134p23370580.html
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.
Re: JNDI context
Posted by Jack Cai <gr...@gmail.com>.
What's your real purpose behind this (not specifying "java:comp/env")?
If it is just that you hate this string, you can use the "@Resource"
annotation to inject the datasource in container-managed artifacts (Servlet,
EJB, etc.).
@Resource (name="jdbc/LiferayPool")
private DataSource ds;
-Jack
2009/5/5 David Jencks <da...@yahoo.com>
> This is a user list question. If you have further questions on this
> subject pleas ask there and only there.
> On May 4, 2009, at 8:19 AM, govinda wrote:
>
>
>> How do I connect to a datasource thru code without context "java:comp/env"
>>
>> Context envContext = (Context)initContext.lookup("java:comp/env");
>>
>> I just want to connect to DB like this
>>
>> DataSource ds = (DataSource)initContext.lookup("jdbc/LiferayPool");
>>
>
> Any such jndi name is going to be container specific. The java:comp/ stuff
> is there specifically so you can use the same jndi name in every container,
> so you don't have to recompile your app for every container.
>
> For information on the geronimo absolute jndi names, see
> http://cwiki.apache.org/GMOxDOC21/jndi.html
>
> Basically what you should do is deploy your datasource, restart geronimo,
> and look in var/log/geronimo.log for the log message telling you what the
> jndi location is.
>
>
>>
>> Is it possible, if so where do I specify java jndi context
>> ("java:comp/env")
>> outside the code?
>>
>
> As far as I understand what you are asking for in this sentence, it is not
> possible.
>
> thanks
> david jencks
>
>
>>
>> Thanks
>> --
>> View this message in context:
>> http://www.nabble.com/JNDI-context-tp23370580s134p23370580.html
>> Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.
>>
>>
>
Re: JNDI context
Posted by David Jencks <da...@yahoo.com>.
This is a user list question. If you have further questions on this
subject pleas ask there and only there.
On May 4, 2009, at 8:19 AM, govinda wrote:
>
> How do I connect to a datasource thru code without context
> "java:comp/env"
>
> Context envContext = (Context)initContext.lookup("java:comp/env");
>
> I just want to connect to DB like this
>
> DataSource ds = (DataSource)initContext.lookup("jdbc/LiferayPool");
Any such jndi name is going to be container specific. The java:comp/
stuff is there specifically so you can use the same jndi name in every
container, so you don't have to recompile your app for every container.
For information on the geronimo absolute jndi names, see http://cwiki.apache.org/GMOxDOC21/jndi.html
Basically what you should do is deploy your datasource, restart
geronimo, and look in var/log/geronimo.log for the log message telling
you what the jndi location is.
>
>
> Is it possible, if so where do I specify java jndi context
> ("java:comp/env")
> outside the code?
As far as I understand what you are asking for in this sentence, it is
not possible.
thanks
david jencks
>
>
> Thanks
> --
> View this message in context: http://www.nabble.com/JNDI-context-tp23370580s134p23370580.html
> Sent from the Apache Geronimo - Dev mailing list archive at
> Nabble.com.
>
Re: JNDI context
Posted by Peter Petersson <pe...@gmail.com>.
govinda wrote:
> How do I connect to a datasource thru code without context "java:comp/env"
>
> Context envContext = (Context)initContext.lookup("java:comp/env");
>
> I just want to connect to DB like this
>
> DataSource ds = (DataSource)initContext.lookup("jdbc/LiferayPool");
>
> Is it possible, if so where do I specify java jndi context ("java:comp/env")
> outside the code?
>
If I have not misunderstood you last question and although I am not a G
developer I hope no one minds I jump in an try to help out.
In Liferay there are several ways to set up a database connection but
you probably want to use Geronimo:s connection pool and sins Liferay
5.2.2 it is ones again possible to set up the application server
connection pools JNDI name by specify the following line in your
portal-ext.properties file.
###application server connection pools JNDI name
jdbc.default.jndi.name=jdbc/LiferayPool
I am not sure the following is required but I also have this in the end
of the web.xml file.
<!-- Geronimo usage -->
<resource-ref>
<res-ref-name>jdbc/LiferayPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Hope this helps.
For more information about this take a look at
http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Database%20Configuration
regards
peter petersson
> Thanks
>