基于 Weblogic 7.0 的應(yīng)用開(kāi)發(fā)(二)
發(fā)表時(shí)間:2023-08-04 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]基于 Weblogic 7.0 的應(yīng)用開(kāi)發(fā)(二)二.Web的應(yīng)用本文將著重講述在WebLogic7中創(chuàng)建和部署一個(gè)Web Application 的的過(guò)程。使用什么樣的工具?這是一個(gè)許多人關(guān)心的問(wèn)題...
基于 Weblogic 7.0 的應(yīng)用開(kāi)發(fā)(二)
二.Web的應(yīng)用
本文將著重講述在WebLogic7中創(chuàng)建和部署一個(gè)Web Application 的的過(guò)程。
使用什么樣的工具?這是一個(gè)許多人關(guān)心的問(wèn)題,特別是對(duì)于初學(xué)者,更是希望依靠強(qiáng)大的IDE,加快自己的學(xué)習(xí)進(jìn)程。然而,結(jié)果卻往往相反。因?yàn)椋琁DE將許多基本的東西封裝在底層自動(dòng)完成,對(duì)于用戶而言是透明的。如果你是一個(gè)對(duì)J2EE結(jié)構(gòu)非常了解的程序員,IDE可以大幅提高你的效率;如果你是初學(xué)者,IDE對(duì)你隱瞞了許多細(xì)節(jié)問(wèn)題。
因此,我在這里使用標(biāo)準(zhǔn)的JDK/寫字板的文本格式進(jìn)行講述。并且,這里不會(huì)對(duì)Servlet/JSP的語(yǔ)法細(xì)節(jié),進(jìn)行過(guò)多描述。
1.環(huán)境設(shè)置
安裝JDK For Windows,安裝包可從Sun的網(wǎng)站上免費(fèi)下載(http://java.sun.com/),也可直接使用WebLogic 中的JDK,對(duì)系統(tǒng)環(huán)境變量設(shè)置如下:
Path= [weblogic_home]\ jdk131_03 \bin
Classpath=[weblogic_home]\ jdk131_03 \lib;[weblogic_home]\lib\weblogic.jar
要是系統(tǒng)變量生效,需要重新啟動(dòng)計(jì)算機(jī);
2.Web Application的目錄結(jié)構(gòu)
DefaultWebApp
------+/WEB-INF/(required)
----+/classes/(option)
----------*.class
----+/lib/(option)
----------*.jar
+---web.xml(required)
+---weblogic.xml(option)
-----*.html
-----*.jsp
-----其他資源,如圖片等。
注:一個(gè) Web Application 至少要包含一個(gè)頁(yè)面,包括jsp 或 html 或 servlet
對(duì)于注有required的項(xiàng)是一個(gè)Web Application 不可缺少的,必須存在的,如WEB-INF目錄,web.xml。
3.打包
將所有程序中使用到的JavaBeans和Servelets編譯成.class文件,連同編譯生成的目錄一起拷貝到WEB-INF\classes\下。
在Dos下,進(jìn)入Application 根目錄,使用jar打包命令,即將當(dāng)前目下所有文件以及目錄打包成webapp_name.war文件。
如:jar cvf webapp_name.war *(其它jar命令的參數(shù),這里不做過(guò)多介紹)
注:不要在目錄外邊執(zhí)行,這樣將導(dǎo)致將外面的目錄也打包進(jìn)去,發(fā)布會(huì)失敗。
4.部署
部署war主要有三種方法,
1)使用Console
使用方法:在瀏覽器中打開(kāi)http://[host]:[port]/console,在左邊的樹(shù)中找到Web Applications節(jié)點(diǎn),
點(diǎn)擊 Configure a new Web Application,通過(guò)界面將打包好的webapp_name.war UPLOAD到Weblogic能找到的地方。
點(diǎn)擊[select],然后選擇一個(gè)Available Server 添加到Target Servers中,輸入系統(tǒng)的名稱(用于訪問(wèn)),Configure And Deploy。
等待,直到Status中變成Completed。就OK!
2)直接拷貝
使用方法:將啟動(dòng)腳本中的STARTMODE 置為 false,使其處于Development Mode。然后,直接將.war文件拷貝到[當(dāng)前Domain]/applications/下,系統(tǒng)會(huì)自動(dòng)部署到當(dāng)前的server上。此時(shí)如果系統(tǒng)沒(méi)有報(bào)錯(cuò),即為部署成功!
3)使用weblogic.deploy類
具體方法可以使用 java weblogic.deploy -help 參考系統(tǒng)提示。
推薦使用,Console或直接拷貝,非常容易上手,3)方法,由于參數(shù)復(fù)雜,我個(gè)人認(rèn)為適用于非Win32系統(tǒng)。
5.調(diào)用
直接在瀏覽器中輸入http://[host]:[port]/webappname即可。
6.補(bǔ)充說(shuō)明:
上述過(guò)程身略了描述文件的編制過(guò)程,對(duì)于初學(xué)者來(lái)說(shuō),完全了解web.xml和weblogic.xml是有一定困難的。這里將使用Weblogic 7.0的一個(gè)新特性,Weblogic Builder。
這里提供了一個(gè)簡(jiǎn)單的步驟:
首先,編寫一個(gè)最為簡(jiǎn)單的web.xml文件。
<!--web.xml-->
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
注意:這是最為省略的了,不能再對(duì)它進(jìn)行修改,而且這也是不可缺少的文件,否則Weblogic Builder將無(wú)法打開(kāi)你想要修改的壓縮包。
然后,按照上述步驟生成一個(gè).war文件。
最后,使用Weblogic Builder打開(kāi)這個(gè).war文件。通過(guò)圖形界面修改部署描述信息,系統(tǒng)將自動(dòng)生成相應(yīng)的weblogic.xml,同時(shí)修改web.xml。
這里可以完成一個(gè)Web Application的所有部署的描述信息,前提是你對(duì)這些選項(xiàng)有一定的認(rèn)識(shí)。
保存,選擇菜單Tools/Options,設(shè)置需要連接的Host/Server/username/password;選擇菜單Tools/Connect to Server,Tools/Deploy,系統(tǒng)部署輕松完成。
另外,對(duì)于jsp的語(yǔ)法校驗(yàn)問(wèn)題一直一個(gè)困擾著我們,有一個(gè)辦法,在不發(fā)布的情況下校驗(yàn)jsp語(yǔ)法。那就是java weblogic.jspc jsp_name.jsp 。
具體參數(shù)使用java weblogic.jspc 察看。
7.附錄:
前面也許很多人會(huì)問(wèn),為什么我把我的class拷貝到了classes的目錄里面并且啟動(dòng)了WebLogic的服務(wù),怎么我的Servlet還是找不到?這里我們簡(jiǎn)單得講一下如何在WebLogic中添加一個(gè)Servlet;
在WebLogic啟動(dòng)之后,首先測(cè)試在DefaultWebApp目錄是否已經(jīng)準(zhǔn)備好:
http://localhost:7001/index.html
在%weblogic%/\config\examples目錄下面運(yùn)行setExamplesEnv.cmd,編譯HelloWorld.java得到一個(gè)HelloWorld.class文件。
javac -d %OUT_DIR % HelloWorld.java
將HelloWorld.class拷貝到DefaultWebApp的目錄下面,在本機(jī)中的目錄為E:\bea\wlserver6.1\config\mydomain\applications\DefaultWebApp。然后打開(kāi)WebLogic的控制臺(tái):
http://127.0.0.1:7001/console
方法一:
點(diǎn)擊Deployments---Web Applications ---- DefaultWebApp,然后點(diǎn)擊Edit Web Application Descriptor...,點(diǎn)擊Servlets 并且Configure a new Servlet…,輸入
Servlet Name: HelloWorld
Servlet Class:HelloWorld
點(diǎn)擊create來(lái)產(chǎn)生這個(gè)新的servlet,然后點(diǎn)擊Apply來(lái)應(yīng)用該servlet。
點(diǎn)擊Servlet Mappings ---- Configure a new ServletMapping…,輸入
Servlet: HelloWorld
URL Pattern: /HelloWorld/*
點(diǎn)擊create來(lái)產(chǎn)生這個(gè)新的servlet,然后點(diǎn)擊Apply來(lái)應(yīng)用該servlet。重新啟動(dòng)WebLogic服務(wù)器。(為什么我安照這樣的操作,可是WebLogic重新啟動(dòng)后,Servlet又沒(méi)有了?)
方法二:
修改該下面的WEB-INF目錄中的web.xml文件,輸入
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld/*</url-pattern>
</servlet-mapping>
重新啟動(dòng)WebLogic服務(wù)器。Servlet安裝成功!
備注:
如果你配置了“動(dòng)態(tài)Applications”,你不用重新啟動(dòng)WebLogic,只要將class文件拷貝到相應(yīng)的目錄中就能直接得到修改后的結(jié)果。關(guān)于配置的參考網(wǎng)址:
http://e-docs.bea.com/wls/docs70/adminguide/appman.html
當(dāng)“auto-deployment”被選中的情況下,WebLogic的“Deploying Applications”會(huì)在每三秒的情況下察看/application目錄下面的變化。
8.問(wèn)題:
如果不這樣做,可以使用以目錄的形式發(fā)布。其實(shí),對(duì)于服務(wù)器來(lái)說(shuō),一個(gè)目錄和.war文件,都是一回事。但是從一個(gè)另外一個(gè)角度來(lái)說(shuō),其用途不同。
對(duì)于開(kāi)發(fā)階段,以目錄形式發(fā)布,便于調(diào)試和更新程序,但是不以管理,安全性差。
對(duì)于一個(gè)成型的產(chǎn)品,最好是打包,因?yàn)楫a(chǎn)品是要交給用戶管理的,對(duì)于相對(duì)素質(zhì)較差的用戶,開(kāi)放的目錄太危險(xiǎn),也不易管理。
同時(shí)需要指出,啟動(dòng)方式也是一個(gè)問(wèn)題。對(duì)于交給用戶的產(chǎn)品而言,運(yùn)行在development模式下,支持熱發(fā)布,是不明智的。