You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Shapira, Yoav" <Yo...@mpi.com> on 2003/06/17 22:09:56 UTC

RE: Tomcat/Ant/JNDI question

Howdy,

>- put the equivalent of ResourceEnvRef into the web.xml inside the web
app

See the <env-entry> element in the Servlet Specification, v2.3,
SRC.13.1.

Yoav Shapira



This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged.  This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender.  Thank you.


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Tomcat/Ant/JNDI question

Posted by Tim Shaw <ti...@everserve.co.uk>.
The Resource is specified, in the server.xml, with a name. This is the 
JNDI name and is used to refer to the resource from wherever you like.

The setup of the resource is done by the ResourceParams (I hope you 
didn't copy my example verbatim ;-)

The web.xml is just abstracting that reference for a lower-level JNDI call.

If you are now getting a null connection, the basic JNDI aspect is 
(probably) working ... and you just need to figure out the url/DB 
specific stuff. This could be the Factory (I added that param based on 
the JNDI/JDBC HOWTO - but it worked fine before, so it might be a 
default), DB permissions (grabbing a connection can fail in loadsa 
ways!), or ...

If you have coded the JNDI (InitialContext) lookup correctly it will work.

BTW I got badly bitten with 4.1.2 (haven't checked since) - every time I 
redeployed my app it rewrote the server.xml file (removing my Resource 
definitions).

If you're still stuck, some more info is needed - server.xml/web.xml 
snippets and code where you get the ref and the connection for starters.

G'luck

tim

Garrett Dangerfield wrote:
> I tried this and it's not giving me the "not found in Context" message, 
> but it's now trying to pass me a null connection.
> 
> I think the problem is that it doesn't know where to get the connection 
> from.
> 
> With the ResourceLink in the server.xml Context, one specifies the name 
> one wants to use locally as well as the name of the global resource. The 
> resource-ref doesn't allow this.
> 
> Any further thoughts?
> 
> Thanks,
> Garrett Dangerfield.
> 
> Tim Shaw wrote:
> 
>> This works for me ...
>>
>> web.xml :
>> <resource-ref>
>> <description>
>> Resource reference to a factory for java.sql.Connection
>> instances that may be used for talking to a particular
>> database that is configured in the server.xml file.
>> </description>
>> <res-ref-name>
>> jdbc/SessionDB
>> </res-ref-name>
>> <res-type>
>> javax.sql.DataSource
>> </res-type>
>> <res-auth>
>> Container
>> </res-auth>
>> </resource-ref>
>>
>> context.xml :
>> <snip>
>> <Resource name="jdbc/SessionDB" auth="Container"
>> type="javax.sql.DataSource"/>
>> <ResourceParams name="jdbc/SessionDB">
>> <parameter>
>> <name>factory</name>
>> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
>> </parameter>
>>
>> <parameter>
>> <name>username</name>
>> <value>tripleplay</value>
>> </parameter>
>> <parameter>
>> <name>password</name>
>> <value></value>
>> </parameter>
>> <parameter>
>> <name>driverClassName</name>
>> <value>com.mysql.jdbc.Driver</value>
>> </parameter>
>> <parameter>
>> <name>url</name>
>> <value>jdbc:mysql://vodmgr:3306/tripleplay</value>
>> </parameter>
>> <parameter>
>> <name>maxActive</name>
>> <value>20</value>
>> </parameter>
>> <parameter>
>> <name>maxIdle</name>
>> <value>20</value>
>> </parameter>
>> <parameter>
>> <name>maxWait</name>
>> <value>5000</value>
>> </parameter>
>> </ResourceParams>
>> </snip>
>>
>> Garrett Dangerfield wrote:
>>
>>> I tried this and it's not working.
>>>
>>> It's saying:
>>> Name jdbc not found in this context
>>>
>>> In my web.xml, I put in:
>>>
>>> <env-entry>
>>> <env-entry-name>jdbc/DataWarehouse</env-entry-name>
>>> <env-entry-value>jdbc/DataWarehouse</env-entry-value>
>>> <env-entry-type>javax.sql.DataSource</env-entry-type>
>>> </env-entry>
>>>
>>> In my server.xml, I have:
>>>
>>> <Resource auth="Container" name="jdbc/DataWarehouse" scope="Shareable"
>>> type="javax.sql.DataSource"/>
>>>
>>> Am I missing something?
>>>
>>> Thanks
>>> Garrett Dangerfield.
>>>
>>> Shapira, Yoav wrote:
>>>
>>>> Howdy,
>>>>
>>>>
>>>>
>>>>> - put the equivalent of ResourceEnvRef into the web.xml inside the web
>>>>
>>>>
>>>>
>>>> app
>>>>
>>>> See the <env-entry> element in the Servlet Specification, v2.3,
>>>> SRC.13.1.
>>>>
>>>> Yoav Shapira
>>>>
>>>>
>>>>
>>>> This e-mail, including any attachments, is a confidential business 
>>>> communication, and may contain information that is confidential, 
>>>> proprietary and/or privileged. This e-mail is intended only for the 
>>>> individual(s) to whom it is addressed, and may not be saved, copied, 
>>>> printed, disclosed or used by anyone else. If you are not the(an) 
>>>> intended recipient, please immediately delete this e-mail from your 
>>>> computer system and notify the sender. Thank you.
>>>
>>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Tomcat/Ant/JNDI question

Posted by Garrett Dangerfield <da...@lvcm.com>.
I tried this and it's not giving me the "not found in Context" message, 
but it's now trying to pass me a null connection.

I think the problem is that it doesn't know where to get the connection 
from.

With the ResourceLink in the server.xml Context, one specifies the name 
one wants to use locally as well as the name of the global resource. The 
resource-ref doesn't allow this.

Any further thoughts?

Thanks,
Garrett Dangerfield.

Tim Shaw wrote:

> This works for me ...
>
> web.xml :
> <resource-ref>
> <description>
> Resource reference to a factory for java.sql.Connection
> instances that may be used for talking to a particular
> database that is configured in the server.xml file.
> </description>
> <res-ref-name>
> jdbc/SessionDB
> </res-ref-name>
> <res-type>
> javax.sql.DataSource
> </res-type>
> <res-auth>
> Container
> </res-auth>
> </resource-ref>
>
> context.xml :
> <snip>
> <Resource name="jdbc/SessionDB" auth="Container"
> type="javax.sql.DataSource"/>
> <ResourceParams name="jdbc/SessionDB">
> <parameter>
> <name>factory</name>
> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> </parameter>
>
> <parameter>
> <name>username</name>
> <value>tripleplay</value>
> </parameter>
> <parameter>
> <name>password</name>
> <value></value>
> </parameter>
> <parameter>
> <name>driverClassName</name>
> <value>com.mysql.jdbc.Driver</value>
> </parameter>
> <parameter>
> <name>url</name>
> <value>jdbc:mysql://vodmgr:3306/tripleplay</value>
> </parameter>
> <parameter>
> <name>maxActive</name>
> <value>20</value>
> </parameter>
> <parameter>
> <name>maxIdle</name>
> <value>20</value>
> </parameter>
> <parameter>
> <name>maxWait</name>
> <value>5000</value>
> </parameter>
> </ResourceParams>
> </snip>
>
> Garrett Dangerfield wrote:
>
>> I tried this and it's not working.
>>
>> It's saying:
>> Name jdbc not found in this context
>>
>> In my web.xml, I put in:
>>
>> <env-entry>
>> <env-entry-name>jdbc/DataWarehouse</env-entry-name>
>> <env-entry-value>jdbc/DataWarehouse</env-entry-value>
>> <env-entry-type>javax.sql.DataSource</env-entry-type>
>> </env-entry>
>>
>> In my server.xml, I have:
>>
>> <Resource auth="Container" name="jdbc/DataWarehouse" scope="Shareable"
>> type="javax.sql.DataSource"/>
>>
>> Am I missing something?
>>
>> Thanks
>> Garrett Dangerfield.
>>
>> Shapira, Yoav wrote:
>>
>>> Howdy,
>>>
>>>
>>>
>>>> - put the equivalent of ResourceEnvRef into the web.xml inside the web
>>>
>>>
>>> app
>>>
>>> See the <env-entry> element in the Servlet Specification, v2.3,
>>> SRC.13.1.
>>>
>>> Yoav Shapira
>>>
>>>
>>>
>>> This e-mail, including any attachments, is a confidential business 
>>> communication, and may contain information that is confidential, 
>>> proprietary and/or privileged. This e-mail is intended only for the 
>>> individual(s) to whom it is addressed, and may not be saved, copied, 
>>> printed, disclosed or used by anyone else. If you are not the(an) 
>>> intended recipient, please immediately delete this e-mail from your 
>>> computer system and notify the sender. Thank you.
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Tomcat/Ant/JNDI question

Posted by Tim Shaw <ti...@everserve.co.uk>.
This works for me ...

web.xml :
     <resource-ref>
         <description>
             Resource reference to a factory for java.sql.Connection
             instances that may be used for talking to a particular
             database that is configured in the server.xml file.
         </description>
         <res-ref-name>
             jdbc/SessionDB
         </res-ref-name>
         <res-type>
             javax.sql.DataSource
         </res-type>
         <res-auth>
             Container
         </res-auth>
     </resource-ref>

context.xml :
<snip>
   <Resource name="jdbc/SessionDB" auth="Container"
             type="javax.sql.DataSource"/>
   <ResourceParams name="jdbc/SessionDB">
       <parameter>
         <name>factory</name>
         <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
       </parameter>

     <parameter>
       <name>username</name>
       <value>tripleplay</value>
     </parameter>
     <parameter>
       <name>password</name>
       <value></value>
     </parameter>
     <parameter>
       <name>driverClassName</name>
       <value>com.mysql.jdbc.Driver</value>
     </parameter>
     <parameter>
       <name>url</name>
       <value>jdbc:mysql://vodmgr:3306/tripleplay</value>
     </parameter>
     <parameter>
       <name>maxActive</name>
       <value>20</value>
     </parameter>
     <parameter>
       <name>maxIdle</name>
       <value>20</value>
     </parameter>
       <parameter>
         <name>maxWait</name>
         <value>5000</value>
       </parameter>
   </ResourceParams>
</snip>

Garrett Dangerfield wrote:
> I tried this and it's not working.
> 
> It's saying:
> Name jdbc not found in this context
> 
> In my web.xml, I put in:
> 
>  <env-entry>
>    <env-entry-name>jdbc/DataWarehouse</env-entry-name>
>    <env-entry-value>jdbc/DataWarehouse</env-entry-value>
>    <env-entry-type>javax.sql.DataSource</env-entry-type>
>  </env-entry>
> 
> In my server.xml, I have:
> 
> <Resource auth="Container" name="jdbc/DataWarehouse" scope="Shareable"
> type="javax.sql.DataSource"/>
> 
> Am I missing something?
> 
> Thanks
> Garrett Dangerfield.
> 
> Shapira, Yoav wrote:
> 
>> Howdy,
>>
>>  
>>
>>> - put the equivalent of ResourceEnvRef into the web.xml inside the web
>>>   
>>
>> app
>>
>> See the <env-entry> element in the Servlet Specification, v2.3,
>> SRC.13.1.
>>
>> Yoav Shapira
>>
>>
>>
>> This e-mail, including any attachments, is a confidential business 
>> communication, and may contain information that is confidential, 
>> proprietary and/or privileged.  This e-mail is intended only for the 
>> individual(s) to whom it is addressed, and may not be saved, copied, 
>> printed, disclosed or used by anyone else.  If you are not the(an) 
>> intended recipient, please immediately delete this e-mail from your 
>> computer system and notify the sender.  Thank you.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>>  
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Tomcat/Ant/JNDI question

Posted by Garrett Dangerfield <da...@lvcm.com>.
I tried this and it's not working.

It's saying:
Name jdbc not found in this context

In my web.xml, I put in:

  <env-entry>
    <env-entry-name>jdbc/DataWarehouse</env-entry-name>
    <env-entry-value>jdbc/DataWarehouse</env-entry-value>
    <env-entry-type>javax.sql.DataSource</env-entry-type>
  </env-entry>

In my server.xml, I have:

<Resource auth="Container" name="jdbc/DataWarehouse" scope="Shareable"
type="javax.sql.DataSource"/>

Am I missing something?

Thanks
Garrett Dangerfield.

Shapira, Yoav wrote:

>Howdy,
>
>  
>
>>- put the equivalent of ResourceEnvRef into the web.xml inside the web
>>    
>>
>app
>
>See the <env-entry> element in the Servlet Specification, v2.3,
>SRC.13.1.
>
>Yoav Shapira
>
>
>
>This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged.  This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender.  Thank you.
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org