Dear all,

I am trying to use JDBC and transactions in Tomcat 5.5.20 with JOTM (as
explained  this tutorial
http://jotm.objectweb.org/current/jotm/doc/howto-tomcat-jotm.html).

But I am getting the following error when I do
http://localhost:8080/dbtest/test.jsp,

 " javax.naming.NameNotFoundException:Name jdbc is not bound in this context
"
As far as I understood by reading this error normally occurs when the
resource-env-ref in the web.xml does not match with the name in context.xml
but in my files I have the same names.

I am using mysql 5.0.18.

My context.xml looks like this,
<Context path="/dbtest" docBase="dbtest.war" debug="0"
      reloadable="true" crossContext="true">
      
      <Resource name="jdbc/myDB" auth="Container"
        type="javax.sql.DataSource"/>
        
      <ResourceParams name="jdbc/myDB">
      
        <parameter>
          <name>factory</name>
          <value>org.objectweb.jndi.DataSourceFactory</value>
        </parameter>
        
        <parameter><name>username</name><value>mojo</value></parameter>
        <parameter><name>password</name><value>mojo</value></parameter>
        
           <parameter><name>driverClassName</name>
           <value>com.mysql.jdbc.Driver</value>
           </parameter>
           
           <parameter><name>url</name>
           <value>jdbc:mysql://localhost/javatest</value></parameter>
      
      </ResourceParams>
      
      <Resource name="UserTransaction" auth="Container"
        type="javax.transaction.UserTransaction"/>
        
      <ResourceParams name="UserTransaction">
      
        <parameter>
          <name>factory</name>
          <value>org.objectweb.jotm.UserTransactionFactory</value>
        </parameter>
        
        <parameter>
          <name>jotm.timeout</name>
          <value>60</value>
        </parameter>
        
      </ResourceParams>
</Context>

My web.xml,
<web-app>
  <resource-env-ref>
    <description>DB Connection</description>
    <resource-env-ref-name>jdbc/myDB</resource-env-ref-name>
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
  </resource-env-ref>
</web-app>

my DBtest.java,

public class DBTest {
        
        int foo=-1;
        public void init(String completion)
        {
                try
                {
                        Context ctx=new InitialContext();
                        Context envctx=(Context) ctx.lookup("java:comp/env"); 
                        DataSource ds= (DataSource) envctx.lookup("jdbc/myDB");
                        
                        UserTransaction ut=
(UserTransaction)ctx.lookup("java:comp/UserTransaction");
                                        
                        java.sql.Connection conn=ds.getConnection();
                        
                        System.out.println("beginning the transation");
                        ut.begin();
                        
                        java.sql.Statement stmt= conn.createStatement();
                        ResultSet rst= stmt.executeQuery("select id,foo from 
testdata");
                        
                        if(rst.next())
                        {
                                foo=rst.getInt(2);
                        }
                        
                        System.out.println("foo =" +"(before completion");
                        
                        PreparedStatement pstmt=conn.prepareStatement("update 
testdate set foo=?
where id=1");
                        pstmt.setInt(1,++foo);
                        pstmt.executeUpdate();
                        
                        if(completion !=null && completion.equals("commit"))
                        {
                                System.out.println("committing the 
transaction");
                                ut.commit();
                        }
                        else
                        {
                                System.out.println("rolling back the 
transaction");
                                ut.rollback();
                        }
                        
                        rst=stmt.executeQuery("select id,foo from testdata");
                        
                        if(rst.next())
                        {
                                foo=rst.getInt(2);
                        }
                        
                        System.out.println("foo =" +foo +"(after completion)");
                        conn.close();
                        System.out.println("done");
                
                
                }
                
                catch(Exception e)
                {
                        e.printStackTrace();
                }
        }

        
        public String getFoo()
        {
                return ""+foo;
        }
}


I am stuggling with this for the past two days.Can anyone please tell me
where did I go wrong and how can I get rid of this error. Thanks in advance!

regards,
robi
-- 
View this message in context: 
http://www.nabble.com/Error%3A-Name-jdbc-is-not-bound-in-this-context-tf2958032.html#a8275077
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to