ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Lamey <cla...@localmatters.com>
Subject Re: How to setup JNDI connection in ibatis
Date Thu, 27 Sep 2007 15:42:35 GMT
I think the use of the Resource element in the server.xml is the same as
using the resource-ref element in the web.xml.  From the docs:

    <Resource> - Configure the name and data type of a resource made
available to the application (equivalent to the inclusion of a
<resource-ref> element in the web application deployment descriptor).

So you can probably remove that from your web.xml.

As for the exception you're getting, you might need to use the full JNDI
name in iBATIS:

    java:/comp/env/jdbc/AS400B

If I remember correctly, Tomcat automatically prepends the "java:/comp/env/"
bit to declared JNDI resources.

Cheers,
Chris

On 9/27/07 9:32 AM, "Ashish Kulkarni" <ashish.kulkarni13@gmail.com> wrote:

> Hi
> This is what i have done,
> in my server.xml file i have added in host element
> <Context path="/approvals6302" docBase="c:\\approvals6302\\" debug="5"
> reloadable="true" crossContext="true">
> <Resource name="jdbc/AS400B" type="javax.sql.DataSource" password="password"
>   driverClassName="com.ibm.as400.access.AS400JDBCDriver" maxIdle="2"
> maxWait="5000" validationQuery="select * from PODATA" username="userid"
> url="jdbc:as400:AS400B/RPTSTEXTDB;naming=system;date format=iso;time
> format=hms;prompt=false" maxActive="4" />
> </Context>
> 
> Then in web.xml i have added
> <resource-ref>
>   <description>DB Connection</description>
>    <res-ref-name>jdbc/AS400B</res-ref-name>
>    <res-type>javax.sql.DataSource</res-type>
>    <res-auth>Container</res-auth>
> </resource-ref>
> 
> and in SqlMapConfig.xml i have added
> <transactionManager type="JDBC">
>     <dataSource type="JNDI">
>        <property name="DataSource" value="jdbc/AS400B"/>
>     </dataSource>
> </transactionManager>
> 
> When i start tomcat i get the following error
> com.ibatis.sqlmap.client.SqlMapException: There was an error configuring
> JndiDataSourceDaoTransactionPool. Cause: javax.naming.NameNotFoundException:
> Name jdbc is not bound in this Context
> 
> 
> 
> 
> 
> 
> 
> On 9/27/07, Christopher Lamey <clamey@localmatters.com> wrote:
>> 
>> Hello,
>> 
>> You then need to add a ResourceLink either in conf/context.xml or in the
>> webapp's specific context file (if you're using one).
>> 
>> I don't know what version of Tomcat you're using, but here are the JNDI
>> docs
>> for 5.5:
>> 
>> http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
>> 
>> PS: I think you can add a resource-env-ref to your webapp's web.xml to
>> link
>> to the global JNDI resource too, but I usually go with the ResourceLink in
>> the context files to avoid mucking with web.xml.
>> 
>> Cheers,
>> Chris
>> 
>> On 9/27/07 7:58 AM, "Ashish Kulkarni" <ashish.kulkarni13@gmail.com> wrote:
>> 
>>> Hi
>>> I am using tomcat application server, and using the Administator
>> application
>>> i added JNDI for my database, i found that it had added following entry
>> in
>>> server.xml file
>>> 
>>> <Resource
>>> name="AS400B"
>>> type="javax.sql.DataSource"
>>> password="password"
>>> driverClassName="com.ibm.as400.access.AS400JDBCDriver"
>>> maxIdle="2"
>>> maxWait="5000"
>>> validationQuery="select * from PODATA"
>>> username="userid"
>>> url="jdbc:as400:AS400B/RPTSTEXTDB;naming=system;date format=iso;time
>>> format=hms;prompt=false"
>>> maxActive="4"/>
>>> 
>>> 
>>> On 9/26/07, Richard Yee <ryee@cruzio.com> wrote:
>>>> 
>>>> You need to set up the connection pool in your application server
>>>> configuration. What AppServer are you using?
>>>> 
>>>> -Richard
>>>> 
>>>> Ashish Kulkarni wrote:
>>>>> Hi
>>>>> I did modify this to look like below
>>>>> <transactionManager type="JDBC">
>>>>>     <dataSource type="JNDI">
>>>>>           <property name="DataSource" value="AS400B"/>
>>>>>     </dataSource>
>>>>> </transactionManager>
>>>>> 
>>>>> But i get following error in tomcat, I have created a data sourse
>>>>> AS400B in tomcat
>>>>> 
>>>>> Caused by: javax.naming.NameNotFoundException: Name AS400B is not
>>>>> bound in this Context
>>>>> at
>>>>> com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(
>>>> SqlMapConfigParser.java:81)
>>>>> at
>>>>> com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(
>>>> SqlMapClientBuilder.java:62)
>>>>> at com.pfizer.maps.data.GetSQLConfigForWeb.getSqlMapInstance
>>>>> (GetSQLConfigForWeb.java:49)
>>>>> at
>>>>> com.pfizer.maps.servlet.Log4JInitServlet.init(Log4JInitServlet.java
>> :104)
>>>>> at
>>>>> org.apache.catalina.core.StandardWrapper.loadServlet(
>>>> StandardWrapper.java:1105)
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On 9/26/07, *Ashish Kulkarni* <ashish.kulkarni13@gmail.com
>>>>> <mailto:ashish.kulkarni13@gmail.com>> wrote:
>>>>> 
>>>>>     Hi
>>>>>     Is there any example of setting up ibatis to use JNDI as data
>>>> source,
>>>>>     I have the following, how do i change it to use JNDI
>>>>> 
>>>>>     <properties resource="SqlMapConfigAS400.properties" />
>>>>>     <transactionManager type="JDBC">
>>>>>     <dataSource type="SIMPLE">
>>>>>     <property name="JDBC.Driver" value="${driver}" />
>>>>> 
>>>>>     <property name="JDBC.ConnectionURL" value="${url}" />
>>>>> 
>>>>>     <property name="JDBC.Username" value="${username}" />
>>>>> 
>>>>>     <property name="JDBC.Password" value="${password}" />
>>>>>     </dataSource>
>>>>>     </transactionManager>
>>>>> 
>>>>>     And i have SqlMapConfigAS400.properties where i have
>>>>>     driver=com.ibm.as400.access.AS400JDBCDriver
>>>>> 
>>>>>     url=jdbc:as400:AS400B/RPTSTEXTDB;naming=system;date
>>>>>     format=iso;time format=hms;prompt=false
>>>>> 
>>>>>     username=user
>>>>> 
>>>>>     password=password
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>> 
>> 


Mime
View raw message