說明:下面操作基於Eclipse Galileo 和apache-tomcat-6.0.26.tar.gz
配置環境分兩種情況,第一種是將war包丟到tomcat的webapp中部署,第二種是Eclipse使用tomcat的虛擬目錄來運行工程。
首先說第一種:將war包丟到tomcat的webapp中部署
此情況又分兩種,第一種是配置工程WebContent下META-INF中context.xml;第二種是配置tomcat中 /conf/Catalina/localhost下的[app_name].xml。
(一) 先說第一種情況:配置工程WebContent下META-INF中context.xml
ApplicationContext.xml
Spring的ApplicationContext.xml有如下注冊數據庫連接的內容
其中“jdbc/mysql_ssh”即爲連接名。
context.xml
然後配置WebContent下META-INF中context.xml,如果沒有,則新建,請注意文件名是context.xml,而不是 content.xml。該文件內容如下:
applicationContext.xml和context.xml中的數據庫連接名要對應。然後可以將工程導成war放在tomcat webapp目錄下部署了。
請記得在工程中放入mysql的jar包,此次測試中tomcat的lib目錄下沒有放置mysql的jar,放了也不報錯。測試頁面請見二.(三)。
如果啓動的時候或測試頁面報“Cannot create JDBC driver of class '' for connect URL 'null'”,請看context.xml文件名是否有誤。
(二) 然後說明第一種情況下的第二個環境吧:配置tomcat中 /conf/Catalina/localhost下的[app_name].xml。
上述情況是配置WebContent下META-INF中context.xml,這次是將部署環境(工程運行時的目錄)中的此文件剪切到tomcat 的conf/Catalina/localhost下,並將context.xml改成你的項目名,我的是ssh.xml。這樣操作也可以配置好。測試頁面請見二.(三)。
也可以將context.xml中的Resource追加到 tomcat conf中的context.xml中。感覺和在META-INF中context.xml原理是一樣的。
第二種情況就是開發環境中的設置了:
(一 )工程的配置文件
web.xml
S2SH框架搭建完畢後,工程的web.xml有如下內容:
ApplicationContext.xml
Spring的ApplicationContext.xml有如下注冊數據庫連接的內容
其中“jdbc/mysql_ssh”即爲連接名。
(二) tomcat中的配置文件
因爲Eclipse不像MyEclipse那樣會把編譯後的文件拷貝到tomcat的webapp目錄,所以不要動心思去改tomcat conf目錄中的文件。
將Eclipse和tomcat關聯後,可在Eclipse的 package Explorer中看到 “Servers”這個project。展開可以看到類似“Tomcat v6.0 Server at localhost-config”的文件夾。
雙擊打開裏面的server.xml
。在 <GlobalNamingResources>和中 <GlobalNamingResources>添加
<GlobalNamingResources>
<Resource name="jdbc/mysql_ssh" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root"
password="admin" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/ssh?autoReconnect=true" />
</GlobalNamingResources>後結果如下:
這個配置大家都能看懂,就不說了。
請注意工程中有mysql的jar包。我測試的時候tomcat 的lib下沒有放置mysql的jar包。
還是這個server.xml 文件。
請找到 <Context> </Context>,並在其中添加 <ResourceLink global="jdbc/mysql_ssh" name="jdbc/mysql_ssh" type="javax.sql.DataSource" />,結果如下:
說明:docBase的值(ssh)會被Eclipse翻譯成絕對路徑並拷貝到tomcat所用的虛擬路徑中。
(三) 測試頁面
在WebContent中新建testdb.jsp 測試文件,內容如下:
通過 http://127.0.0.1:8080/ssh/testdb.jsp就可以看到結果了。