JBoss-IDE 1.2.2 教程 5:
現在我們要新增一個 HTML 檔案將一些參數代入 Servlet 中. 新增一個 ‘docroot’ 資料夾. 再新增一個空的 ‘index.html’ 檔案. ‘index.html’ 是 Web App 的預設檔案包含一個 form 將參數代入 Servlet.
‘index.html’ 的詳細代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Fibonacci Application
</title>
</head>
<body>
<h1>Fibonacci Form</h1>
<form action="Compute" method="POST" >
<table cellspacing="2" cellpadding="2" border="0">
<tr>
<td>
Limit :
</td>
<td>
<input type="text" name="limit" value="50">
</td>
</tr>
<tr>
<td>
<input type="submit" name="Compute" value="Compute">
</td>
<td>
<input type="Reset">
</td>
</tr>
</table>
</form>
</body>
</html>
J2EE 應用項目:
要完成 J2EE 項目, 我們要新增一些額外的檔案. 在 ‘src/META-INF’ 資料夾, 新增一個 ‘application.xml’ 檔案. 這個檔案是 J2EE 項目的配置文檔, 指到 EJB 包和 War 包的路徑.
‘application.xml’ 的詳細代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>Sum Application</display-name>
<module>
<ejb>FiboEJB.jar</ejb>
</module>
<module>
<web>
<web-uri>FiboWeb.war</web-uri>
<context-root>/fibo</context-root>
</web>
</module>
</application>
封裝:
JBoss-IDE 有一個十分方便易用的封裝設置, 而且是沒有限制的.
在教程裏, 封裝設置會設定:
l 一個 EJB jar 檔案. 這個檔案會有 EJB 的類, 接口和部署檔案.
l 一個 EJB 客戶端的 jar 檔案. 含有 EJB 的接口.
l 一個 Web App 的 war 檔案. 內有 Servlet, EJB客戶端的 jar 和部署檔案.
l 一個 J2EE 項目的 ear 檔案. 內有 EJB jar, Web App war 和部署檔案.
當起動的時候, 這四個封裝設定會生成 J2EE 的項目部署.
右擊項目選 ‘Properties’ -> ‘Packaging configurations’. 在右手邊視窗右擊選 ‘Add Archive’. 輸入 ‘FiboEJB.jar’ 再按 ‘OK’. 現在己新增一個封裝設定會產生 ‘FiboEJB.jar’ 檔案.
現在我們要加 EJB 的類和接口在 ‘FiboEJB.jar’ 裏, 而那些檔案在 ‘src/bin’ 的資料夾中 (如用預設項目的輸出資料夾). 首先選 ‘FiboEJB.jar’ 再在右邊手的視窗選 ‘Add Folder’. 在彈出的視窗你可選內置或外置的資料夾, 包括或排除的檔案, 前置字等設定. 選 ‘Project Folder’ -> ‘/Tutorial/bin’ -> ‘OK’. 包括 (Includes) 填入 ‘tutorial/ejb/*.class,tutorial/interfaces/*.class’ -> ‘OK’.
我們要在 ‘FiboEJB.jar’ 裏加基本的 EJB 部署文檔, 選 ‘FiboEJB.jar’ 再在右邊手的視窗選 ‘Add File’. 在彈出的視窗你可選內置或外置的檔案, 前置字等設定. 選 ‘Project File’ -> ‘/Tutorial/src/META-INF/ejb-jar.xml’ -> ‘OK’. 前置字 (Prefix) 填入 ‘META-INF’ -> ‘OK’.
重覆以上動作, 這次在檔案是選 ‘jboss.xml’, 其他一樣, 做完後封裝 ‘FiboEJB.jar’ 己完成了, 如下圖:
跟著我們要新增一個 EJB 客戶端的封裝設定. 大同小異, 右擊右手邊視窗選 ‘Add Archive’. 輸入 ‘FiboEJB-client.jar’ 再選 ‘OK’, 再右擊 ‘FiboEJB-client.jar’ 選 ‘Add Folder’ 按 ‘Project Folder’ 選 ‘/Tutorial/bin’, 在 ‘Includes’ 輸入 ‘tutorial/interfaces/*.class’ -> ‘OK’. EJB 客戶端的封裝已完成:
跟著我們要新增一個 Web App 的 war 封裝設定. 大同小異, 右擊右手邊視窗選 ‘Add Archive’. 輸入 ‘FiboWeb.war’ 再選 ‘OK’, 再右擊 ‘FiboWeb.war’ 選 ‘Add Folder’ 按 ‘Project Folder’ 選 ‘/Tutorial/bin’, 在 ‘Includes’ 輸入 ‘tutorial/web/*.class’, ‘Prefix’ 輸入 ‘WEB-INF/classes’ -> ‘OK’. 要加上基本的 war 配置文檔, 我們要先選 ‘FiboWeb.war’, 右擊選 ‘Add File’, 選 ‘/Tutorial/src/WEB-INF/web.xml’, 而 ‘Prefix’ 輸入 ‘WEB-INF’. 要加另外一個基本的配置文檔, 再選 ‘FiboWeb.war’, 右擊選 ‘Add File’ 選 ‘Porject File’ 選 ‘/Tutorial/src/WEB-INF/jboss-web.xml’. 加上 EJB 客戶端 jar, 再選 ‘FiboWeb.war’, 右擊選 ‘Add File’, 選 ‘/Tutorial/FiboEJB-client.jar’, 雖然現時還沒有 ‘FiboEJB-client.jar’ 檔案, 但仍可加上設定中, 而 ‘Prefix’ 則要填入 ‘WEB-INF/lib’ -> ‘OK’. 接著是 HTML 檔案, 選 ‘FiboWeb.war’, 右擊選 ‘Add Folder’ 選 ‘/Tutorial/docroot’, 這是 Web App 的內容. 這樣 war 的封裝已完成:
到了 ear 的設定了, 也是一樣, 右擊選 ‘Add Archive’, 輸入 ‘FiboApp.ear’ 再按 ‘OK’. 選 ‘FiboApp.ear’ 右擊選 ‘Add File’ 輸入 ‘/Tutorial/src/META-INF/application.xml’, 因為這個檔案要放在 ‘META-INF’ 中, 所以 ‘Prefix’ 則填入 ‘META-INF’ 後按 ‘OK’. 要加 EJB 模塊, 選 ‘FiboApp.ear’ 右擊選 ‘Add File’ 填入 ‘/Tutorial/FiboEJB.jar’. 雖然這個檔案現時不存在, 但我們仍可加入, 再按 ‘OK’. 要加 Web 模塊, 選 ‘FiboApp.ear’ 右擊選 ‘Add File’ 填入 ‘/Tutorial/FiboWeb.war’. 雖然這個檔案現時不存在, 但我們仍可加入, 再按 ‘OK’. 這樣 ear 的封裝已完成:
按 ‘OK’ 保存資料後會在項目中看到一個新的檔案 ‘packaging-build.xml’, 這個檔案包含完整的 J2EE 項目封裝設定.
現在可以運行封裝的設定了, 右擊項目選 ‘Run Packaging’, 控制台會顯示以下訊息, 而項目中也會多了兩個 jar, 一個 war 和一個 ear 檔案: