I tried what you suggested (removing the entry from web.xml and the
resource link from the context.xml) and I now get this error message
from my application.

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of
class '' for connect URL 'null'
        at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource
.java:780)
        at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.ja
va:540)
        at
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTrans
action.java:48)
        at
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(
JdbcTransaction.java:89)
        at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery
ForList(GeneralStatement.java:123)
        at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMap
ExecutorDelegate.java:615)

Thanks,
Tom


-----Original Message-----
From: Tom Henricksen [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 26, 2008 9:09 PM
To: user-java@ibatis.apache.org
Subject: RE: iBatis - tomcat JNDI setup

I tried following:
http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
And it has both the context.xml and the entry in the web.xml.
I will try without the web.xml and see.

Thanks,
Tom

-----Original Message-----
From: Christopher Lamey [mailto:[EMAIL PROTECTED]
Sent: Wed 3/26/2008 4:23 PM
To: user-java@ibatis.apache.org
Subject: Re: iBatis - tomcat JNDI setup
 
Having the ResourceLink and the Resource in the context xml might be
screwing it up.  You're telling it to link to a global JNDI object, but
it
doesn't exist at that level.

Also using a resource-ref in the web.xml and a Resource element in the
context.xml is redundant.

Read the Resource Definitions section of this page:

http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

Declaring a Resource in the context xml allows you to drop in JNDI
objects
for you webapp without having to muck with web.xml.

On 3/26/08 3:17 PM, "Tom Henricksen" <[EMAIL PROTECTED]> wrote:

> I am trying to setup Tomcat JNDI to work on our application with
iBatis.
> 
> I get the following error:
> 
>  
> 
> java.lang.RuntimeException: Error occurred.  Cause:
> com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause:
> java.lang.RuntimeException: Error parsing XPath
> '/sqlMapConfig/transactionManager/dataSource/end()'.  Cause:
> com.ibatis.sqlmap.client.SqlMapException: There was an error
configuring
> JndiDataSourceTransactionPool. Cause:
> javax.naming.NameNotFoundException: Name jdbc is not bound in this
> Context
> 
>       at
>
com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConf
> igParser.java:89)
> 
>       at
>
com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapCli
> entBuilder.java:63)
> 
>       at
>
com.advtechgrp.bop.medical.data.SqlMapsService.initSqlMaps(SqlMapsServic
> e.java:58)
> 
>       at
>
com.advtechgrp.bop.medical.web.MedicalApplication.initialize(MedicalAppl
> ication.java:106)
> 
>       at
>
com.advtechgrp.bop.medical.web.listener.FacesListener.contextInitialized
> (FacesListener.java:63)
> 
>       at
>
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.j
> ava:3831)
> 
>       at
>
org.apache.catalina.core.StandardContext.start(StandardContext.java:4323
> )
> 
>       at
>
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.ja
> va:823)
> 
>  
> 
>  
> 
> SqlMapConfig.xml ibatis 2.30
> 
>       <transactionManager type="JDBC">
> 
>             <dataSource type="JNDI">
> 
>                   <property name="DataSource"
> value="java:comp/env/jdbc/medical"/>
> 
>             </dataSource>
> 
>       </transactionManager>
> 
>  
> 
> context.xml - tomcat 5.0.30
> 
> <?xml version='1.0' encoding='utf-8'?>
> 
> <Context debug="4"
> 
>       docBase="C:/Java/eclipse-europa/europa-workspace/bop-med/web"
> 
>       path="/bop-med" reloadable="true"
> 
>       workDir="work\Catalina\localhost\bop-med">
> 
>       
> 
>       <ResourceLink global="jdbc/medical" name="jdbc/medical"
> 
>             type="javax.sql.DataSource"/>
> 
>       
> 
>       <Resource name="jdbc/medical" auth="Container"
> 
>                 type="javax.sql.DataSource" username="user"
> 
>                 password="pass"
> 
>                 driverClassName="com.ibm.db2.jcc.DB2Driver"
> 
>                 url="jdbc:db2://srv:50000/medical"
> 
>                 maxActive="8" maxIdle="4"/>
> 
> </Context>
> 
>  
> 
>             In application web.xml
> 
>  
> 
>       <resource-ref>
> 
>             <description>
> 
>                   jdbc/medical
> 
>             </description>
> 
>             <res-ref-name>jdbc/medical</res-ref-name>
> 
>             <res-type>javax.sql.DataSource</res-type>
> 
>             <res-auth>Container</res-auth>
> 
>       </resource-ref>
> 
>  
> 
> Any suggestions?
> 
>  
> 
> Thanks in advance,
> 
>  
> 
> Tom Henricksen
> Consultant
> Advanced Technologies Group, Inc.
> 
> 1601 48th Street, Suite 220
> 
> West Des Moines, IA 50265
> 
> *  Office:     (515) 221-9344 Ext 138
> 
> *  Fax:         (515) 221-1266
> * Email:     [EMAIL PROTECTED]
> 
>  
> 


Reply via email to