Tomcat上配置连接池{ connect error=Name [jdbc/OracleDB] is not bound in this Context. Unable to find [jdbc]}
. 在学习期间,从未实践过在tomcat上配置连接池,今天终于实现一次,在tomcat玩了一把,不知道你是否现在有和我一样的困境。废话少说直接上代码
java
public static Connection getConnection_tomcat() { Connection conn = null; try { Context initCtx = new InitialContext(); Context ctx = (Context) initCtx.lookup("java:comp/env"); Object obj = (Object) ctx.lookup("jdbc/OracleDB"); javax.sql.DataSource ds = (javax.sql.DataSource) obj; return conn = ds.getConnection(); } catch (Exception e) { System.out.println("connect error=" + e.getMessage()); return null; } }
在tomcat->conf->server.xml
<GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> <!-- 在tomcat 配置连接池 --> <Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="" maxActive="50" maxldle="10" maxWait="5000" username="" password="" /> </GlobalNamingResources>
在tomcat->conf->context.xml
<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- 在配置一个连接池 --> <ResourceLink global="jdbc/OracleDB" name="jdbc/OracleDB" type="javax.sql.DataSource"/> </Context>
这样就大功告成了!