top
Loading...
Bean和Servlet的企業應用(2)
p>譯Session Bean和Servlet:

用如下批處理,可以編譯Session Bean:

cd C:J2EE

set J2EE_HOME=C:J2EEj2sdkee1.2.1

set CPATH=.;%J2EE_HOME%libj2ee.jar

javac -d . -classpath %CPATH% Beans/CalcBean.java

Beans/CalcHome.java Beans/Calc.java

其實,在前面設置了Classpath的路徑之后,只要在C:J2EE目錄下面:

javac Beans/CalcBean.java Beans/CalcHome.java Beans/Calc.java直接執行就可以。下面的批處理也是同樣的。


用如下批處理編譯Servlet:

cd C:J2EEClientCode

set J2EE_HOME=C:J2EEj2sdkee1.2

set CPATH=.;%J2EE_HOME%libj2ee.jar;

C:J2EE

javac -d . -classpath %CPATH% BonusServlet.java

編譯Servlet的時候,因為用到了Session Bean的類,所以必須還要在Classpath中把C:J2EE的加進去。

這樣就把Session Bean和Servlet編譯好了。


九、啟動J2EE的應用服務器。

我們需要啟動J2EE的應用服務器來配置和運行這個例子。啟動的命令在J2EE的安裝目錄C:J2EEj2sdkee1.2inj2ee.bat下面。命令行如下:

j2ee �verbose

參數-verbose是表示在啟動服務器的時候,將啟動信息輸出到屏幕上。當你看見輸出

J2EE server startup complete

時,就可以啟動配置工具了。現在,我們暫時忽略其它的輸出信息。


十、啟動配置工具:

為了組裝和配置J2EE的應用程序,必須啟動deploytool。我們前面已經配置好了路徑信息,只要敲入如下命令就可以了:

deploytool

如果在啟動的時候遇到了內存訪問錯誤,試著增加一個環境變量:JAVA_FONTS。將它設置為系統的fonts目錄。象是:C:WINNTfonts之類的。另外,如果遇到了NullPointerException錯誤,可能是因為你在根目錄下執行deloytool。在別的目錄下執行deploytool一般不會遇到這樣的錯誤。


十一、配置工具:

配置工具有四個窗口。Local Application窗口顯示了J2EE的應用程序和它們的組件。Inspecting窗口所選擇的J2EE應用程序或者組件的信息。Servers窗口告訴你應用程序正運行在本地主機上。Server Application窗口告訴我們安裝了那些應用程序。在安裝J2EE應用程序的過程中。我們將會看到Local Application窗口、Inspecting窗口和Server Application窗口顯示相應的 ⅰ?/p>

在Server Application窗口的右邊,有一個uninstall按紐。可以卸掉J2EE應用程序。如果是改變或者重新配置應用程序,并不需要停止或者重新啟動應用服務器。


十二、組裝J2EE應用程序:

步驟如下:創建一個新的J2EE應用程序(BonusApp.ear)、創建一個新的Enterprise Bean(CalcBean.jar)、創建一個新的Web組件(Bonus.war)、為Enterprise Bean指定一個JNDI名字(calcs)、指定J2EE應用程序的根上下文(BonusRoot)。


創建一個J2EE應用程序:

J2EE組件是組裝到J2EE應用程序文件包(*.ear)里面的。

在File菜單中選擇New Application:

在彈出的New Application 對話框中,將New Applicaion Name的名字起為:BonusApp.ear。然后在Application Display Name域上點鼠標右鍵,將會顯示BonusApp。然后單擊Browse按紐,將新的ear文件存放在你想要存放的目錄下。

在New Application file chooser中:

定位到你存放應用程序EAR文件的目錄,在這個例子中,目錄是C:J2EE。在File Name框中填入:BonusApp.ear。單擊New Application,再單擊OK。

現在,BonusApp顯示在Local Application列表框中。Inspecting窗口中顯示了名字、位置和BonusApp包含的內容信息。在內容窗口中顯示meta信息描述了Jar文件和J2EE應用程序。并且提供了應用程序的運行時的信息。


創建一個Session Bean:

在File菜單中選擇New Enterprise Bean。顯示了向導的介紹,大概瀏覽一下。然后單擊Next。彈出EJB JAR對話框。按照下面寫的輸入:

Enterprise Bean will go in: BonusApp

Display name: CalcJar

Description: 一個計算獎金的Session Bean,里面有一個方法。

單擊Add,這里面有兩個Add按鈕,我們單擊的是右下角的那個。在Contents Window旁邊。

Add Files to .Jar對話框:進入到J2EE的目錄。可以直接敲路徑名或者通過傍邊的Browse得到。到了J2EE目錄之后。雙擊Beans目錄顯示里面的文件。依次把Calc.class、CalcHome.class、CalcBean.class 都Add進去。

單擊OK。現在就返回到了EJB JAR對話框。Beans/Calc.class、Beans/CalcBean.class、Beans/CalcHome.class應該在Contents窗口中顯示出來。單擊Next。

General對話框:下面相應的框應該如下選擇。

Classname: Bean.CalcBean

Home interface: Beans.CalcHome

Remote interface: Beans.Calc

Bean type: Session and Stateless

指定顯示的名字(就是當Jar文件加到Local Application窗口中的BonusApp中之后顯示的名字)。并且提供JAR文件內容的描述。

Display name: CalcBean

Description:這個文件包含了CalcBean Session Bean。單擊Next。

環境入口:因為我們這個例子沒有使用到環境入口屬性。直接單擊Finish。


創建Web組件:

Web組件(Servlet和JSP技術)被捆綁到一個WEB壓縮包(WAR)中。

在File菜單中選擇New Web Component。彈出New Web Component的向導。大概瀏覽一下,單擊Next。

WAR File General Properties 對話框。提供如下信息:

WAR file: BonusApp

Display name: BonusWar

Description: 本WAR文件包含了一個Servlet和一個html頁面。

單擊Add:

Add Contents to WAR對話框:

轉到ClientCode目錄。

選擇bonus.html文件。Add進去。注意在列表框中文件前面不要有它的目錄的前綴。單擊Add。

然后把BonusServlet.class也加進去。

有時候明明把Servlet加進去了,系統死活就是不認。這是,刪除Servlet,重新假如可能就好了。我在做這一步的時候加了好多次,每次做同樣的操作。不知道為什么,J2EE竟然出這樣弱的BUG。另外,要先加class文件,然后再家html文件。順序也有關系。單擊Finish。

回到WAR File General Properties對話框。單擊Next。

Choose Component Type對話框:

選擇Servlet,然后單擊Next。

Component General Properties對話框:

確定在ServletClass 中選擇了BonusServlet。

敲入顯示的名字(BonusServlet)以及其描述信息。

因為本例子我們只是用了一個Servelt,所以可以忽略startup and load sequence的設置。

Component Initialization Parameters對話框:沒有使用參數,單擊Next。

Component Alias對話框:

單擊Add.

敲入BonusAlias并回車。這個別名和在html頁面中表單的Action域中指定的是一樣的。

單擊Finish。

在這里面,將會看到WAR文件包含了一個XML文件,里面有Web應用程序的結構和屬性信息。還有bonus.html文件和BonusServlet類文件。WAR文件安排所有的Servlet類都在Web-INF/classes目錄下面。然而,當WAR文件配置好之后,BonusServlet類被放到了上下文的根目錄public_html下。這樣的放置符合Servlet 2.2的Web服務規范。


指定JNDI名字和根上下文:

在配置BonusApp應用程序和它的組件之前,必須要指定用來查找CalcBean Session Bean的JNDI名字BonusServlet。還要指定上下文的根目錄,配置器將把Web組件放到這個目錄下。

JNDI名字:

在Local Application窗口中選擇BonusApp文件。在Inspecting窗口中選擇JNDI頁。在最右邊的JNDI name下面敲入calcs。這個名字應該和Servlet中lookup()方法中的名字一樣。

上下文根目錄:

在Inspecting目錄中,選擇Context頁。在左邊一列是BonusWar。在右邊一列敲入BonusRoot。配置好之后的文件結構如下:

別名:

在Local Application窗口中,單擊BonusWar,然后單擊BonusServlet。然后在Inspecting窗口中選擇Alias頁。如果沒有BonusAlias,就填入BonusAlias。


十三、驗證并配置J2EE應用程序:

在配置應用程序之前,最好先驗證一下是否有錯誤。驗證程序將會收集所有的錯誤信息,例如編譯時找不到Session Bean中相匹配的方法。

驗證:在Local Application中選擇BonusApp,單擊Tool菜單中的Verifier。單擊OK,應該出現的是沒有錯誤。然后關閉驗證窗口。注意:J2EE1.2的版本可能會出現一個test app.WebURI錯誤。這個表示配置工具在創建WAR文件的時候沒有把.war擴展名加進去。這是J2EE的一個小BUG。沒有關系,不管它就行了。

配置:在Tool菜單中,選擇Deploy Application。彈出Deploy BonusApp對話框。要注意保證Target Server selection要么是localhost,要么是運行了J2EE服務器的主機。另外,注意必要選擇Return Client Jar box。

單擊Next,確定JNDI名字顯示為calcs。否則自己填如。

單擊Next,確定Context Root name顯示為BonusRoot,否則自己填入。

單擊Next,在單擊Finish。將彈出一個對話框顯示配置操作的狀態。

十四、運行J2EE應用程序:

Web服務器默認端口8000運行。可以在C:J2EEj2sdkee1.2config目錄下的web.properties文件中改。

在瀏覽器中地址欄中輸入:http://localhost:8000/BonusRoot/bonus.html

然后輸入社會保險號和乘數。單擊Submit按鈕。瀏覽器將返回類似如下的葉面:

Bonus Calculation

Soc Sec: 777777777

Multiplier: 25

Bonus Amount 2500.0

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗