來源:feng - BlogJava
由于直接編輯server.xml配置連接池很容易出現錯誤,我估計是tomcat版本問題,沒個版本可能配置有點點差別,所以我建議使用在http://localhost/admin/中進行數據源的配置,下載tomcat的admin包,安裝過程如下
下載下來進行解壓,得到三個文件,和兩個包,一個叫conf包,另外一個叫做server包。
接著進行安裝:那三個單獨的文件不用管;把conf\Catalina\localhost\下面的一個配置文件admin.xml放在你tomcat安裝目錄下面的Tomcat 5.5\conf\Catalina\localhost\這個路徑下,即跟host-manage.xml,manager.xml放在一起;再把server\webapps\下面的admin包拷貝到你的tomcat安裝目錄下的Tomcat 5.5\server\webapps\這個路徑下面跟host-manager,manager包放在一塊。
安裝搞定,重新啟動tomcat,在地址欄輸入http://localhost/admin/,在出現的截面里面輸入你安裝tomcat的時候你輸入的用戶名和密碼。
登錄成功后,會出現Tomcat 的web應用管理界面(Tomcat Web Server Administration Tool)。
然后在左邊的目錄樹點擊“Data Sources”項,右邊可以看到JNDI配置的頁面。
在右上角的下拉框中選擇“Create New Data Source”,接下來填寫配置信息:
JNDI Name: jdbc/feng /*連接池的名稱*/
Data Source URL: jdbc:mysql://localhost:3306/bbs /*bbs為數據庫的名稱*/
JDBC Driver Class: com.mysql.jdbc.Driver
User Name: root
Password: feng
Max. Active Connections: 可用默認值
Max. Idle Connections: 可用默認值
Max. Wait for Connection: 可用默認值
Validation Query: 可不填寫。
然后,按下“save”按鈕保存。
再按下“Commit Changes”按鈕將配置更改提交完成。
下面這步比較重要,不加就會出現錯誤
在<Context></Context>的描述中加上本web應用對全局連接池的引用說明,如下文字:
<ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/>
一般都是加在虛擬目錄里
類似下面
<Context
crossContext="true"
docBase="D:/feng"
path="/feng"
reloadable="true">
<ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/>
</Context>
上面完成后,還需要配置對應虛擬目錄WEB應用的web.xml
內容可以參考下面
<web-app>
<resource-ref>
<description>MySQL DataSource example</description>
<res-ref-name>jdbc/feng</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
保存D:\feng\WEB-INF\web.xml 文件
應用示例
<%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html; charset=GB2312"%>
<html>
<head><title>DataSourse Connection Test</title></head>
<body>
<%
try{
Connection con;
Statement stmt;
ResultSet rs;
Context ctx = new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/feng");
con=ds.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery("select * from user");
while(rs.next()){
out.println(rs.getString(1));
%>
<br>
<%
out.print(rs.getString(2));
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){
out.print(e.getMessage());
}
%>
</body>
</html>
---------------------------------------------------------
專注移動開發
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2007-09-23 12:42
TiGERTiAN 閱讀(396)
評論(2) 編輯 收藏 所屬分類:
Java