给你一个成功的写法:..................<Context path="/OST" docBase="OST" debug="0" reloadable="true">
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" 
       driverName="org.gjt.mm.mysql.Driver" 
       connectionURL="jdbc:mysql://localhost:3306/tourism_db"
       userTable="attraction" userNameCol="user_id"
       userCredCol="password" userRoleTable="user_role"
       roleNameCol="role_name" />
</Context>
      </Host>    </Engine>  </Service></Server>

解决方案 »

  1.   

    老大,你这个好象是跟权限有关的吧?
    <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" 
           driverName="org.gjt.mm.mysql.Driver" 
           connectionURL="jdbc:mysql://localhost:3306/tourism_db"
           userTable="attraction" userNameCol="user_id"
           userCredCol="password" userRoleTable="user_role"
           roleNameCol="role_name" />
      

  2.   

    <value>jdbc:mysql://localhost:3306/bookdb?autoReconnection=true</value>
    改成:<value>jdbc:mysql://127.0.0.1:3306/bookdb?autoReconnection=true</value>试试
      

  3.   

    用datasource<datasources>
      <local-tx-datasource>
        <jndi-name>MySqlDS</jndi-name>
        <connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>x</user-name>
        <password>y</password>
      </local-tx-datasource></datasources>
      

  4.   

    是这样吗?我试过,还是不行.
    <Context path="fs" docBase="fs" debug="5" reloadable="true" crossContext="true">
        <datasources>
    <local-tx-datasource>
    <jndi-name>jdbc/BookDB</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/bookdb</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>pass</password>
    </local-tx-datasource>
        </datasources>
    </Context>
      

  5.   

    还有啊,Tomcat的文档都是
    <Context path="/fs" docBase="fs" debug="0" reloadable="true" />
    我要是这样做,就会把目录找不到
    只有改成
    <Context path="fs" docBase="fs" debug="0" reloadable="true" />
    才能通过.
      

  6.   

    <datasources>
    我用的是jndi<local-tx-datasource>
        <jndi-name>MySqlDS</jndi-name>
        <connection-url>jdbc:mysql://mysql-hostname:3306/jbossdb</connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>x</user-name>
        <password>y</password>
      </local-tx-datasource>
    </datasources>package database;import java.io.UnsupportedEncodingException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    public class jndiJDBC {
     private Connection conn;
     private ResultSet rs;
     private Statement stmt;
     private DataSource ds;
     private String jndi;
     
     public void setJndi(String newJndi){
    this.jndi = newJndi;
     }
     
     public String getJndi(){
    return this.jndi;
     }
      
     public jndiJDBC(){
    this.jndi = "java:/MySqlDS";
     }
     
     public void init(){
    try{
    Context initCtx = new InitialContext();
    ds = (DataSource)initCtx.lookup(this.jndi);
    if(ds!=null){
    conn =ds.getConnection();
    }
    }catch(Exception e){
    System.out.println("Connection Error:"+e.getMessage());
    }  
     
     }
        public ResultSet executeQuery(String sql) {
       if (conn == null) {
     this.init();
       }
       try {
     stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
     ResultSet.CONCUR_READ_ONLY);
     rs = stmt.executeQuery(sql);
       }
       catch (SQLException se) {
     System.err.print("ExecuteQuery Error:" + se.getMessage());
     return null;
       }
       return rs;
     }
      

  7.   

    对了。。单独做一个xml文件,名字自己取,我没放在server.xml里面
      

  8.   

    http;//j.topcool.net/ittraining/ittraining1.htm
      

  9.   

    不好意思,我的xml配置是jboss的,tomcat你可以参考\webapps\tomcat-docs\jndi-datasource-examples-howto.html
    javabean没问题,在jboss和tomcat里都可以用
      

  10.   

    我完全按照Tomcat的文档来做,TMD都不行,真是服了.
      

  11.   

    呵呵~~还是jboss简单~~只要自己弄个xml文件就行了
    把你的javabean贴出来看看?
      

  12.   

    我是jsp
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.sql.DataSource" %>
    <%@ page import="javax.naming.*" %>
    <%@ page contentType="text/html;charset=GB2312" %><html>
    <head>
    <title>BookList</title>
    </head>
    <body>
    <% 
       Connection con;
       Statement stmt;
       ResultSet rs;
    Context initCtx = new InitialContext();
    DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/TestDB");
       System.out.println("lookup");
    con = ds.getConnection();
       System.out.println("getConnection");
       stmt = con.createStatement();
       rs = stmt.executeQuery("SELECT id, name, title, price FROM books");
       out.println("<table border=1 width=400>");
       while (rs.next()){
       String col1 = rs.getString(1);
       String col2 = rs.getString(2);
       String col3 = rs.getString(3);
       float  col4 = rs.getFloat(4);
       out.println("<tr><td>"+col1+"</td><td>"+col2+"</td><td>"+col3+"</td><td>"+col4+"</td></tr>");
       }
       out.println("</table>");
       rs.close();
       stmt.close();
       con.close();
       %>
    </body>
    </html>
      

  13.   

    我帮你找到原因了解决:在%TOMCAT_HOME%\conf\Catalina\localhost下找到你的web应用对应的.xml文件,如test.xml,并在此文件的下添入代码:<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>重启tomcat。你的是服务器的全局JNDI资源,而用InitialContext去找server的resource当然找不到了,要想找到server的resource就得在web application中的context环境里加入一个指向该全局resource的ResourceLink。global -->The name of the linked global resource in the global JNDI context.
    name -->The name of the resource link to be created, relative to the java:comp/env context.?
    type -->The fully qualified Java class name expected by the web application when it performs a lookup for this resource link.
      

  14.   

    <ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSourcer"/>
    在最后那个javax.sql.DataSourcer里多了个字母'r'