2

最初に環境について説明します

環境: :Netbeans 7.2 and Tomcat 7.0.27.0 is configured with Netbeans ID

ビルドを個別に取得してwebappsフォルダーに入れて実行すると、問題はありませんが、IDE 自体でアプリケーションを実行すると、javax.naming.NameNotFoundException: Name [jdbc/eswastha] is not bound in this Context. Unable to find [jdbc].この例外が発生します。

conf/context.xml

<Resource name="jdbc/eswastha" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               url="jdbc:mysql://localhost:3306/eswastha"
               driverClassName="com.mysql.jdbc.Driver"
               username="root" password="r14@17*" />

および web.xml

<resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jjdbc/eswastha</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>  

そしてJavaクラス:

import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class JDBCManager {

    public Connection mysqlConnection()  {
        Connection dbConnection = null;
        try {

            Context initContext = new InitialContext();
            Context envContext  = (Context)initContext.lookup("java:/comp/env");
            DataSource ds = (DataSource)envContext.lookup("jdbc/eswastha");
            dbConnection = ds.getConnection();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return dbConnection;

    }
}

問題を特定するのを手伝ってください。

よろしく

4

2 に答える 2

1

行方不明ですか?小切手

 <res-ref-name>jjdbc/eswastha</res-ref-name>
 and
 <Resource name="jdbc/eswastha"..../>

あなたのコメントに基づいて: 接続 URL 'null' のクラス '' の JDBC ドライバーを作成できません


JDBC Driverドライバーのjarファイルを下にコピーすることを確認してくださいtomcat-home/lib

あなたの参考になります。ここ

于 2012-10-17T06:04:21.863 に答える
1

完全な JNDI 名でデータ ソースにアクセスすることをお勧めします。例: "java:comp/env/jdbc/test "環境

2 つ目の注意として、web.xmlでjdbcの代わりにjjdbcを定義していることに気付きました。

<res-ref-name>jjdbc/eswastha</res-ref-name>
于 2014-02-14T10:21:11.717 に答える