Tomcat8.0+Mysql5.7配置jndi
2016-01-03 10:13
906 查看
第一步:下载mysql数据库的jdbc驱动,Connector/J,下载解压后的jar放到tomcat安装路径的lib下,不要放错到bin下咯。
第二步:创建数据库,这里数据库名为testdb,mysql数据库名不区分大小写,默认小写,就最好小写咯。CREATE DATABASE `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
第三步:eclipse中创建Dynamic Web Project项目,项目名testjndi,内容如下:
整个WEB-INF/web.xml文件内容如下:
整个WebContent/index.jsp文件内容如下:(自己手写很容易把包引错)
第4步:修改tomcat/conf/context.xml,整个文件内容如下,其中 <Resource.../>这段是新加的,注意红色字体,其中jdbc/testjndi和jsp和web.xml中保持一致。
第五步:eclipse tomcat中启动项目,运行http://localhost:8080/testjndi/,如下图
![](http://img.blog.csdn.net/20160103105001424?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
备注一:如果运行得到:Cannot create JDBC driver of class '' for connect URL 'null',请再检查你的context.xml,是否配置正确,尤其是看Resource name属性是否为jdbc/testjndi和url是否正确,eclipse中clean项目会重新生成配置,具体看eclipse的配置情况
备注二:网上还有一种在tomcat\conf\server.xm和tomcat\conf\Catalina\localhost下配置方式:
1.整个localhost\项目名.xml内容如下:注意这个文件是手动添加的,文件名名称为项目名
![](http://img.blog.csdn.net/20160103110034788?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.eclipse tomcat中启动项目,运行http://localhost:8080/testjndi/,完成
备注三:eclipse_tomcat_默认配置如下图:
![](http://img.blog.csdn.net/20160103111110435?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
删除eclipse中的tomcat,server。重新建server,配置tomcat如下图,此种配置方式是最佳实践,会少许多bug,默认的在eclipse工作空间中,路径太深:
![](http://img.blog.csdn.net/20160103111217075?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
备注四:我的标题是Tomcat8.0+Mysql5.7配置jndi,其实和tomcat、msql、jdk,版本没有关系,只是开始在这个配置没弄出来,后来换低版本弄出来了,然后又在高版本配置好了。
备注五:更完整资源已上传到百度云中。
备注六:最新发现,不用在tomcat/conf/context.xml中配置Resource,直接如下图,很方便。
第二步:创建数据库,这里数据库名为testdb,mysql数据库名不区分大小写,默认小写,就最好小写咯。CREATE DATABASE `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
第三步:eclipse中创建Dynamic Web Project项目,项目名testjndi,内容如下:
整个WEB-INF/web.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>test</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <resource-ref> <res-ref-name>jdbc/testjndi</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
整个WebContent/index.jsp文件内容如下:(自己手写很容易把包引错)
<%@page import="javax.naming.InitialContext"%> <%@page import="javax.sql.DataSource"%> <%@page import="java.sql.Connection"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% out.print("MySQL 数据源测试开始..." + "<br/>"); DataSource ds = null; try { InitialContext ctx = new InitialContext(); ds = (DataSource) ctx.lookup("java:comp/env/jdbc/testjndi"); Connection conn = ds.getConnection(); conn.close(); out.print("MySQL 数据源测试成功!"); } catch (Exception ex) { out.print("出现意外,信息是:" + ex.getMessage()); ex.printStackTrace(); } %> </body> </html>
第4步:修改tomcat/conf/context.xml,整个文件内容如下,其中 <Resource.../>这段是新加的,注意红色字体,其中jdbc/testjndi和jsp和web.xml中保持一致。
<?xml version="1.0" encoding="UTF-8"?> <Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> <Resource name="jdbc/testjndi" type="javax.sql.DataSource" password="123" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="50" username="root" url="jdbc:mysql://localhost:3306/testdb" maxActive="4"/> </Context>
第五步:eclipse tomcat中启动项目,运行http://localhost:8080/testjndi/,如下图
备注一:如果运行得到:Cannot create JDBC driver of class '' for connect URL 'null',请再检查你的context.xml,是否配置正确,尤其是看Resource name属性是否为jdbc/testjndi和url是否正确,eclipse中clean项目会重新生成配置,具体看eclipse的配置情况
备注二:网上还有一种在tomcat\conf\server.xm和tomcat\conf\Catalina\localhost下配置方式:
1.整个localhost\项目名.xml内容如下:注意这个文件是手动添加的,文件名名称为项目名
<Context> <ResourceLink global="jdbc/testjndi" name="jdbc/testjndi" type="javax.sql.DataSource"/> </Context>2.部分server.xml内容如下:是在<Host>中加Context,在Context中加Resource,Resource内容和上面是一致的,如果eclipse中tomcat配置合适<Context..>是自动生成的,只需加Resource
3.eclipse tomcat中启动项目,运行http://localhost:8080/testjndi/,完成
备注三:eclipse_tomcat_默认配置如下图:
删除eclipse中的tomcat,server。重新建server,配置tomcat如下图,此种配置方式是最佳实践,会少许多bug,默认的在eclipse工作空间中,路径太深:
备注四:我的标题是Tomcat8.0+Mysql5.7配置jndi,其实和tomcat、msql、jdk,版本没有关系,只是开始在这个配置没弄出来,后来换低版本弄出来了,然后又在高版本配置好了。
备注五:更完整资源已上传到百度云中。
备注六:最新发现,不用在tomcat/conf/context.xml中配置Resource,直接如下图,很方便。
相关文章推荐
- tomcat 多系统部署
- 把工程部署在tomcat的root路径下
- 修改tomcat 启动45秒
- 解决Tomcat 7遇到StackOverflowError的异常
- 瀑布流点击加载更多(记住tomcat下启动,做过瀑布流的大家估计都知道为啥)
- Idea 配置maven-tomcat-plugin插件实现项目部署
- Tomcat—怎样在Tomcat Webserver下部署Web项目
- tomcat + apache 动静分离
- Eclipse中搭建Apache Tomcat7源码调试环境
- Eclipse中搭建Apache Tomcat7源码调试环境
- Eclipse中搭建Apache Tomcat7源码调试环境
- CentOS 6.7安装Tomcat 7
- Intellij idea下使用不同tomcat编译maven项目的服务器路径
- Eclipse启动tomcat,访问localhost:8080出现404
- tomcat启动一闪而过
- JAVA WEB学习笔记(二):Tomcat服务器的安装及配置
- 在tomcat中发布的项目占用资源,如何清理不用的项目?
- tomcat学习
- tomcat虚拟路径的配置方法汇总
- 修改项目源代码时不需要每次都重启Tomcat