我将首先描述环境
环境: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;
}
}
请帮我确定问题。
此致
答案 0 :(得分:1)
它丢失了吗? 检查
<res-ref-name>jjdbc/eswastha</res-ref-name>
and
<Resource name="jdbc/eswastha"..../>
根据您的评论: 无法创建类的&#39;&#39;用于连接网址&#39; null&#39;
确保JDBC Driver
下的tomcat-home/lib
和复制驱动程序jar文件。
这将是您的参考。 here
答案 1 :(得分:1)
您可能希望尝试以完整的JNDI名称访问数据源,例如:&#34; java:comp / env / jdbc / test&#34; 资料来源:http://www.coderanch.com/t/442367/Tomcat/jdbc-bound-Context
第二点,我注意到你在web.xml中定义了 jjdbc ,而不是 jdbc :
<res-ref-name>jjdbc/eswastha</res-ref-name>