Tomcat配置JNDI数据源
2013-08-16 22:54
387 查看
数据库版本--oracle11g
tomcat版本--tomca7.0
ide版本--Eclipse Java EE IDE for Web Developers.
第一步:
将数据库驱动程序(jar包)放到项目的WebContent/WEB-INF/lib文件夹下
第二步:
在项目的WebContent/META-INF目录下创建一个context.xml文件,里面的内容如下:
附注如下:
Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
* password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。
* 如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。
jdbc/test是数据源的名称(随意写),
其他的参数按照自己的实际情况进行修改,例如数据库的名称、账号、密码。
第三步:
写个jsp,试一下。
结果:连接成功!!
=========================常见错误======================
错误提示:cannot load JDBC driver class(不能加载驱动类)
错误原因及解决方案:通过数据库源访问数据库,数据库由Tomcat创建,应该把JDBC驱动程序的JAR文件复制到项目的WebContent/WEB-INF/lib文件夹下,或tomcat的lib目录下。(参考第一步)
错误提示:Cannot create JDBC driver of class ' ' for connect URL 'null' (由于连接路径为NULL,不能创建驱动)
错误原因及解决方案:此类错误多与数据库驱动或者在连接错误时出现,解决的办法就是检查context.xml文件中娄据源配置的文件信息,确保配置信息完全正确。(参考第二步)
错误提示:Name w is not bound in this Context (jdbc名称没有绑定到上下文)
错误原因及解决方案:
1.在使用 lookup() 方法查找数据源时,如果数据源名称与配置中的名称不一致,则程序运行时会所此错误。解决办法就是确保context.xml文件中指定的数据源名称与代码中所要访问的数据源名称一致.
2.在程序中使用 lookup() 方法查找数据源时,没有使用前缀(java:comp/env/)+数据源名称。则程序运行时会报此错误。解决办法是在使用 lookup() 查找数据源时,使用前缀(java:comp/env/)+数据源名称的形式。
tomcat版本--tomca7.0
ide版本--Eclipse Java EE IDE for Web Developers.
第一步:
将数据库驱动程序(jar包)放到项目的WebContent/WEB-INF/lib文件夹下
第二步:
在项目的WebContent/META-INF目录下创建一个context.xml文件,里面的内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/wl" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="wladmin" password="lan2711" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:ORCL"/> </Context>
附注如下:
Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
* password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。
* 如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。
jdbc/test是数据源的名称(随意写),
其他的参数按照自己的实际情况进行修改,例如数据库的名称、账号、密码。
第三步:
写个jsp,试一下。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*,javax.sql.*,javax.naming.*" %> <% Connection conn=null; try { //初始化查找命名空间--Context位于javax.naming包中 Context ctx = new InitialContext(); //找到DataSource,对名称进行定位java:comp/env是必须加的,后面跟你的DataSource名 DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/wl"); //取出连接 conn = ds.getConnection(); System.out.println("连接成功!!"); } catch (NamingException e) { System.out.println(e.getMessage()); } catch (SQLException e) { e.printStackTrace(); } finally { //注意不是关闭,是放回连接池. conn.close(); } %>
结果:连接成功!!
=========================常见错误======================
错误提示:cannot load JDBC driver class(不能加载驱动类)
错误原因及解决方案:通过数据库源访问数据库,数据库由Tomcat创建,应该把JDBC驱动程序的JAR文件复制到项目的WebContent/WEB-INF/lib文件夹下,或tomcat的lib目录下。(参考第一步)
错误提示:Cannot create JDBC driver of class ' ' for connect URL 'null' (由于连接路径为NULL,不能创建驱动)
错误原因及解决方案:此类错误多与数据库驱动或者在连接错误时出现,解决的办法就是检查context.xml文件中娄据源配置的文件信息,确保配置信息完全正确。(参考第二步)
错误提示:Name w is not bound in this Context (jdbc名称没有绑定到上下文)
错误原因及解决方案:
1.在使用 lookup() 方法查找数据源时,如果数据源名称与配置中的名称不一致,则程序运行时会所此错误。解决办法就是确保context.xml文件中指定的数据源名称与代码中所要访问的数据源名称一致.
2.在程序中使用 lookup() 方法查找数据源时,没有使用前缀(java:comp/env/)+数据源名称。则程序运行时会报此错误。解决办法是在使用 lookup() 查找数据源时,使用前缀(java:comp/env/)+数据源名称的形式。
相关文章推荐
- tomcat之JNDI数据源配置
- Tomcat 6.0配置数据源(DBCP)和JNDI使用
- 在Tomcat配置JNDI数据源的三种方式
- tomcat+spring+jndi同时部署多个项目配置多数据源
- Tomcat6.0+mysql5.0+JNDI数据源配置方法
- Tomcat中配置JNDI数据源
- Spring+Tomcat的JNDI数据源连接池简单配置
- Tomcat下配置JNDI数据源的三种方法
- JNDI数据源(在Tomcat下配置JNDI多数据源实例)
- IDEA社区版中maven-tomcat插件配置JNDI数据源
- Tomcat下使用Druid配置JNDI数据源
- tomcat配置JNDI获取数据源
- Tomcat 6 部署工程总结,使用JNDI数据源配置
- Springmvc +JNDI 在Tomcat下 配置数据源
- Tomcat6.0配置JNDI数据源完整例子
- Tomcat中配置JNDI数据源
- 在tomcat中用jndi配置数据源启动java web程序
- tomcat配置JNDI数据源例子
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
- tomcat中通过JNDI数据源配置使用