NoInitialContextException(NoInitialContextExceptio

2019-09-18 09:33发布

我有个问题。 我想用JDBC连接到数据库,我有Tomcat服务器。 为此,我使用连接池。

根据网上的教程我写:context.xml中:

<?xml version="1.0" encoding="UTF-8"?>

<Context antiJARLocking="true" path="/Server" docBase="dbcp" debug="5"
         reloadable="true" crossContext="true">

    <Resource name="jdbc/TestDB" auth="Container"
          type="javax.sql.DataSource" removeAbandoned="true"
          removeAbandonedTimeout="30" maxActive="100"
          maxIdle="30" maxWait="10000" username="root"
          password="newpass"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/delta_server"/>

</Context>

web.xml中:

<resource-ref>
      <description>DB Connection Pooling</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

我尝试连接...

Connection conn=null;
DataSource ds;
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
ds = (DataSource) envContext.lookup("jdbc/TestDB");
conn = ds.getConnection();

但我得到一个错误:javax.naming.NoInitialContextException:需要在环境或系统属性中指定的类名,或者作为一个小程序参数,或在应用程序的资源文件:java.naming.factory.initial的

该怎么办???

文章来源: NoInitialContextException