配置JNDI数据源是由Tomcat管理的,而不是让框架例如spring管理的。首先把对应的数据库驱动包放到tomcat的lib目录,注意是tomcat下,不是工程里面。在工程的META-INF目录下新建context.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/myoa"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="777777"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/myoa"
/>
</Context>
然后在工程的web.xml引用该resource。其中res-ref-name,res-type,res-auth分别对应Resource中的name,type,auth。
<resource-ref>
<res-ref-name>jdbc/myoa</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
建一个JSP测试页面。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<%
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/myoa");
Connection conn = ds.getConnection();
out.println(conn);
conn.close();
%>
</body>
</html>
启动服务器,访问JSP,成功。