引用:
http://hi.baidu.com/zhaobz/blog/item/f9acac777699871ab051b9ca.html
Java的Web開發環境布置向來很煩瑣,這可不得不怪B/S結構的“苦了開發者,方便千萬用戶”舍己為人精神,以及各種工具版本紛雜帶來的不便與不少不負責任網友的胡亂指引。下面把我自己的成功經驗向大家匯報,希望有需要的朋友能少走彎路。具體步驟如下:
1.安裝Java開發環境Eclipse3.2.2,安裝Oracle10g數據庫
首先安裝SUN JDK1.6以上版本的Java基礎開發環境,配置Java系統變量(這個太基礎,不具體展開了)。接著下載解壓安裝Eclipse3.2開發環境,根據個人需要安裝語言包、MyEclipse等插件擴充功能(也可以先不安裝)。
安裝Oracle10g數據庫,創建測試數據庫:TDBASE與DBA:ZHAOBZ/11111,建立表空間:ZHAOBZ和測試表:USER_INF。其中USER_INF表具有USER_ID、USER_NAME、USER_TEL字段屬性,并添如若干測試記錄。
2.安裝Tomcat及其插件
下載并解壓Tomcat啟動插件tomcatPluginV32beta3.zip(http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-120.html),將其下目錄文件拷入eclipse\plugins目錄下(這步若成功執行,eclipse運行后將發現多了Tomcat菜單項及其啟動、停止、重啟等快捷按鈕。若看不到,可能通過刪除eclipse\configuration目錄下除config.ini外所有文件,再重啟eclipse來解決)。
下載Tomcat標準程序apache-tomcat-6.0.10.zip(http://tomcat.apache.org/)
配置系統變量“TOMCAT_HOME”,其值為關聯到apache-tomcat-6.0.10目錄的路徑。打開apache-tomcat-6.0.10\conf\tomcat-users.xml 文件,在<tomcat-users></tomcat-users>標記元素中加入:<user username="zhaobz" password="12345" roles="admin,manager"/>,即加入角色身份為admin和manager的管理員zhaobz,我們之后需要以manager角色上傳Web應用程序和以admin角色配置數據員。再打開apache-tomcat-6.0.10\conf目錄下server.xml文件,將<Connector元素后port="8080"的屬性改為port="8000"(注意:由于Oracle已占用了Tomcat默認的8080訪問端口,必須更改其它未被占用的空閑端口,此處假設為8000)。
接下來運行eclipse程序,配置Tomcat屬性。打開菜單“窗口/首選項”,打開“Java/已安裝的JRE”選項,將運行環境參數位置定位于JDK目錄下的JRE目錄。打開“Tomcat”選項,Tomcat Version選擇6.x,Tomcat Home定位到apache-tomcat-6.0.10目錄,其余默認關聯即可。打開“Tomcat/JVM Settings”和“Tomcat/Source Path”選項,JRE選擇剛配置的已安裝的JRE,Automatcially compute source path打勾。再打開“Tomcat Manager App”選項,url輸入http://localhost:8000/manager,username和password填Tomcat中新加入的zhaobz和12345(這步可以保證將Web應用程序發布到Tomcat,項目Reload也不會出錯)。
3.獲取Oracle10g相應的JDBC驅動程序,配置Data Sources和Context
拷貝Oracle10g安裝目錄下oracl10/jdbc/lib/classes12.jar驅動文件到Tomcat目錄下common/lib公共文件夾下。
然后在eclipse中啟動Tomcat(點擊那個貓的圖標即可),以zhaobz/12345身份登陸http://localhost:8000/admin后新建數據源。其中JNDI Name:jdbc/Oracle(此數據源JNDI名字可以隨意取,但不可重復),Data Source URL:jdbc:oracle:thin:@localhost:1521:TDBASE(1521為Oracle訪問端口,NBZJU為要訪問的數據庫名稱),JDBC Driver Class:oracle.jdbc.driver.OracleDriver(可打開classes12.jar文件查看到相應的路徑,否則驅動有誤),Username:zhaobz和Password:11111(填TDBASE數據庫有訪問權限的用戶即可),其余選項默認即可。數據源保存及遞交后,conf目錄下server.xml文件的全局命名資源GlobalNamingResources元素內將多一項Resource屬性:
<Resource name="jdbc/Oracle" type="javax.sql.DataSource" password="11111" driverClassName="oracle.jdbc.driver.OracleDriver" maxIdle="2" maxWait="5000" username="zhaobz" url="jdbc:oracle:thin:@localhost:1521:TDBASE" maxActive="4"/> |
數據源配置完成后,還須配置相關的上下文信息context,來使程序獲得JDNI初始化引用,從而定位數據源。由于之前定義的是全局資源,我們可在apache-tomcat-6.0.10\conf\context.xml文件中的Context元素中加入關聯屬性:
<ResourceLink global="jdbc/Oracle" name="jdbc/Oracle" type="javax.sql.DataSource"/> |
4.創建測試Web程序
運行eclipse,新建一個Tomcat項目到任意的當前工作空間,此處項目取名quickstart。當項目一經創建,我們就可以發現apache-tomcat-6.0.10\conf目錄下server.xml文件的Host元素內自動增加了以下屬性內容(用來關聯發布Web應用程序的工作目錄):
<Host appBase="webapps" name="localhost"><Context path="/quickstart" reloadable="true" docBase="E:\zhaobz\workspace\quickstart" workDir="E:\luhao\workspace\quickstart\work" />
</Host> |
新建JSP測試頁面index.jsp到quickstart工程目錄下(JSP頁面編輯需要有支持Web開發功能的eclipse插件支持,如MyEclipse、WTP等插件),代碼如下:
<%@ page contentType="text/html; charset=gb2312" %> <%@ page import="javax.naming.*" %> <%@ page import="javax.sql.*" %> <%@ page import="java.sql.*" %> <html><head><title>Oracle JDBC Test</title></head> <body> <% Connection conn=null; Statement stmt=null; ResultSet rs=null; ResultSetMetaData md=null; try{ Context initCtx=new InitialContext(); //獲得JNDI初始化上下文信息,即獲取目錄上下文的引用 DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/Oracle"); //定位數據源jdbc/Oracle if(ds!=null){ out.println("已經獲得DataSource"); out.println(ds.toString()); conn=ds.getConnection(); if(conn!=null){ out.println("create connection sucess!"); stmt=conn.createStatement(); out.println("createStatement Success!"); rs=stmt.executeQuery("select * from LUHAO.USER_INF"); md=rs.getMetaData(); out.println("<table border=1>"); out.println("<tr>"); for(int i=0;i<md.getColumnCount();i++){ out.println("<td>"+md.getColumnName(i+1)+"</td>"); } while(rs.next()){ out.println("<tr>"); out.println("<td>"+rs.getString(1)+"</td>"); out.println("<td>"+rs.getString(2)+"</td>"); out.println("<td>"+rs.getString(3)+"</td>"); out.println("<td>"); } out.println("</table>"); conn.close(); } } }catch(Exception e){ out.println(e.toString()); System.out.println(e.toString()); } %> </body> </html> |
5.啟動數據庫,運行測試程序
運行測試頁面前必須先啟動后臺數據庫。辦法是打開Oracle SQL Plus,用DBA身份連接入TDBASE數據庫:conn zhaobz/11111 as sysdba,再用命令:startup完成啟動數據庫(shutdown可以關閉數據庫)。
保存工程,啟動Tomcat,打開http://localhost:8000/quickstart/頁面。若能看到各種連接成功的消息及完整的USER_INF測試表內容,那么表明整個Web測試程序運行成功了!
總結:
實際的整合配置過程,除上述全局化配置方法可行外,還可以采用局部化配置方法(某些版本Tomcat可能行不通)。局部化配置方法較全局化配置方法區別僅在于將數據源jdbc/Oracle的Resource屬性內容加入工程所在quickstart目錄下的META-INF\context.xml文件的Context元素中去,而不用改變Tomcat目錄的conf子目錄下的server.xml和context.xml文件。