當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]Eclipse3.2+Tomcat5.5.17+Oracle9配置   Java的Web開發(fā)環(huán)境布置向來(lái)很煩瑣,近來(lái)整合下配置Eclipse3.2+Tomcat5.5.17+Oracle9i環(huán)境又累

Eclipse3.2+Tomcat5.5.17+Oracle9配置
  Java的Web開發(fā)環(huán)境布置向來(lái)很煩瑣,近來(lái)整合下配置Eclipse3.2+Tomcat5.5.17+Oracle9i環(huán)境又累了N小時(shí),這可不得不怪B/S結(jié)構(gòu)的“苦了開發(fā)者,方便千萬(wàn)用戶”舍己為人精神,以及各種工具版本紛雜帶來(lái)的不便與不少不負(fù)責(zé)任網(wǎng)友的胡亂指引。下面小弟把自己的成功經(jīng)驗(yàn)向大家匯報(bào),希望有需要的友人能少走彎路。具體步驟如下:

  1.安裝Java開發(fā)環(huán)境Eclipse3.2,安裝Oracle9i數(shù)據(jù)庫(kù)

  首先安裝SUN的JDK1.4以上版本的Java基礎(chǔ)開發(fā)環(huán)境,配置Java系統(tǒng)變量(這個(gè)太基礎(chǔ),不具體展開了)。接著下載解壓安裝Eclipse3.2開發(fā)環(huán)境,根據(jù)個(gè)人需要安裝語(yǔ)言包、MyEclipse等插件擴(kuò)充功能(也可以先不安裝)。

  安裝Oracle9i數(shù)據(jù)庫(kù),創(chuàng)建測(cè)試數(shù)據(jù)庫(kù):NBZJU與DBA:LUHAO/11111,建立表空間:LUHAO和測(cè)試表:USER_INF。其中USER_INF表具有USER_ID、USER_NAME、USER_TEL字段屬性,并添如若干測(cè)試記錄。

  2.安裝Tomcat及其插件

  下載并解壓Tomcat啟動(dòng)插件tomcatPluginV31.zip,將其下目錄文件拷入eclipseplugins目錄下(這步若成功執(zhí)行,eclipse運(yùn)行后將發(fā)現(xiàn)多了Tomcat菜單項(xiàng)及其啟動(dòng)、停止、重啟等快捷按鈕。若看不到,可能通過(guò)刪除eclipseconfiguration目錄下除config.ini外所有文件,再重啟eclipse來(lái)解決)。

  下載Tomcat標(biāo)準(zhǔn)程序apache-tomcat-5.5.17.zip和admin控制臺(tái)程序apache-tomcat-5.5.17-admin.zip(將后者解壓入前者的解壓目錄下可以獲得登陸admin圖形管理界面的功能,這將方便后面的數(shù)據(jù)源配置,不用直接在server.xml中自己輸入?yún)?shù),即通過(guò)圖形界面配置生成相應(yīng)的標(biāo)準(zhǔn)XML參數(shù)。否則手動(dòng)輸入?yún)⒖紒?lái)的配置容易出錯(cuò),因?yàn)椴煌姹総omcat的XML標(biāo)記語(yǔ)法解析不同,例如5.1版的參數(shù)放入5.5版是無(wú)效的。因此,強(qiáng)烈建議用圖形界面配置數(shù)據(jù)源?。?/p>

  配置系統(tǒng)變量“TOMCAT_HOME”,其值為關(guān)聯(lián)到apache-tomcat-5.5.17目錄的路徑。打開apache-tomcat-5.5.17conftomcat-users.xml文件,在<tomcat-users></tomcat-users>標(biāo)記元素中加入:<user username="luhao" password="12345" roles="admin,manager"/>,即加入角色身份為admin和manager的管理員luhao,我們之后需要以manager角色上傳Web應(yīng)用程序和以admin角色配置數(shù)據(jù)員。再打開apache-tomcat-5.5.17conf目錄下server.xml文件,將<Connector元素后port="8080"的屬性改為port="8008"(注意:由于oracle已占用了Tomcat默認(rèn)的8080訪問(wèn)端口,必須更改其它未被占用的空閑端口,此處假設(shè)為8008)。

  接下來(lái)運(yùn)行eclipse程序,配置Tomcat屬性。打開菜單“窗口/首選項(xiàng)”,打開“Java/已安裝的JRE”選項(xiàng),將運(yùn)行環(huán)境參數(shù)位置定位于JDK目錄下的JRE目錄。打開“Tomcat”選項(xiàng),Tomcat Version選擇5.x,Tomcat Home定位到apache-tomcat-5.5.17目錄,其余默認(rèn)關(guān)聯(lián)即可。打開“Tomcat/JVM Settings”和“Tomcat/Source Path”選項(xiàng),JRE選擇剛配置的已安裝的JRE,Automatcially compute source path打勾。再打開“Tomcat Manager App”選項(xiàng),url輸入http://localhost:8008/manager,username和password填Tomcat中新加入的luhao和12345(這步可以保證將Web應(yīng)用程序發(fā)布到Tomcat,項(xiàng)目Reload也不會(huì)出錯(cuò))。

  3.獲取Oracle9i相應(yīng)的JDBC驅(qū)動(dòng)程序,配置Data Sources和Context

  拷貝Oracle9i安裝目錄下ora90/jdbc/lib/classes12.jar驅(qū)動(dòng)文件到Tomcat目錄下common/lib公共文件夾下。

  然后在eclipse中啟動(dòng)Tomcat(點(diǎn)擊那個(gè)貓的圖標(biāo)即可),以luhao/12345身份登陸http://localhost:8008/admin后新建數(shù)據(jù)源。其中JNDI Name:jdbc/Oracle(此數(shù)據(jù)源JNDI名字可以隨意取,但不可重復(fù)),Data Source URL:jdbc:oracle:thin:@localhost:1521:NBZJU(1521為Oracle訪問(wèn)端口,NBZJU為要訪問(wèn)的數(shù)據(jù)庫(kù)名稱),JDBC Driver Class:oracle.jdbc.driver.OracleDriver(可打開classes12.jar文件查看到相應(yīng)的路徑,否則驅(qū)動(dòng)有誤),Username:luhao和Password:11111(填NBZJU數(shù)據(jù)庫(kù)有訪問(wèn)權(quán)限的用戶即可),其余選項(xiàng)默認(rèn)即可。數(shù)據(jù)源保存及遞交后,conf目錄下server.xml文件的全局命名資源GlobalNamingResources元素內(nèi)將多一項(xiàng)Resource屬性:

<Resource
name="jdbc/Oracle"
type="javax.sql.DataSource"
password="11111"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="5000"
username="luhao"
url="jdbc:oracle:thin:@localhost:1521:NBZJU"
maxActive="4"/>

  數(shù)據(jù)源配置完成后,還須配置相關(guān)的上下文信息context,來(lái)使程序獲得JDNI初始化引用,從而定位數(shù)據(jù)源。由于之前定義的是全局資源,我們可在apache-tomcat-5.5.17confcontext.xml文件中的Context元素中加入關(guān)聯(lián)屬性:

<ResourceLink global="jdbc/Oracle" name="jdbc/Oracle" type="javax.sql.DataSource"/>

  4.創(chuàng)建測(cè)試Web程序

  運(yùn)行eclipse,新建一個(gè)Tomcat項(xiàng)目到任意的當(dāng)前工作空間,此處項(xiàng)目取名quickstart。當(dāng)項(xiàng)目一經(jīng)創(chuàng)建,我們就可以發(fā)現(xiàn)apache-tomcat-5.5.17conf目錄下server.xml文件的Host元素內(nèi)自動(dòng)增加了以下屬性內(nèi)容(用來(lái)關(guān)聯(lián)發(fā)布Web應(yīng)用程序的工作目錄):

<Host
appBase="webapps"
name="localhost"><Context path="/quickstart" reloadable="true" docBase="E:luhaoworkspacequickstart" workDir="E:luhaoworkspacequickstartwork" />

</Host>

  新建JSP測(cè)試頁(yè)面index.jsp到quickstart工程目錄下(JSP頁(yè)面編輯需要有支持Web開發(fā)功能的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");
 //定位數(shù)據(jù)源jdbc/Oracle
 if(ds!=null){
  out.println("已經(jīng)獲得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.啟動(dòng)數(shù)據(jù)庫(kù),運(yùn)行測(cè)試程序

  運(yùn)行測(cè)試頁(yè)面前必須先啟動(dòng)后臺(tái)數(shù)據(jù)庫(kù)。辦法是打開Oracle SQL Plus,用DBA身份連接入NBZJU數(shù)據(jù)庫(kù):conn luhao/11111 as sysdba,再用命令:startup完成啟動(dòng)數(shù)據(jù)庫(kù)(shutdown可以關(guān)閉數(shù)據(jù)庫(kù))。

  保存工程,啟動(dòng)Tomcat,打開http://localhost:8008/quickstart/頁(yè)面。若能看到各種連接成功的消息及完整的USER_INF測(cè)試表內(nèi)容,那么表明整個(gè)Web測(cè)試程序運(yùn)行成功了!

  總結(jié):

  實(shí)際的整合配置過(guò)程,除上述全局化配置方法可行外,還可以采用局部化配置方法(某些版本Tomcat可能行不通)。局部化配置方法較全局化配置方法區(qū)別僅在于將數(shù)據(jù)源jdbc/Oracle的Resource屬性內(nèi)容加入工程所在quickstart目錄下的META-INFcontext.xml文件的Context元素中去,而不用改變Tomcat目錄的conf子目錄下的server.xml和context.xml文件。

?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉