、本節(jié)內(nèi)容簡(jiǎn)介

  本章主要介紹JBOSS(免費(fèi)的EJB服務(wù)器),以及教會(huì)大家如何安裝Jboss,建立你第一個(gè)EJB和客戶端。關(guān)于什么是EJB,以及如何開(kāi)發(fā)等。這些關(guān)于EJB方面有很多書(shū)籍進(jìn)行描述,在此不再闡述。描述信息是運(yùn)行在windows平臺(tái),當(dāng)然你可以應(yīng)用在其他支持的平臺(tái)(如:Linux等)。
  2、關(guān)于JBOSS

  Jboss支持EJB 1.1和EJB 2.0的規(guī)范,它是一個(gè)為管理EJB的容器和服務(wù)器。類似于Sun’s J2SDK Enterprise Edition(J2EE),但是Jboss核心服務(wù)僅是提供EJB服務(wù)器。JBOSS不包括serverlers/JSP page 的WEB容器,當(dāng)然可以和Tomcat或Jetty綁定使用。JBOSS需要比較小的內(nèi)存和硬盤空間。可以在64M內(nèi)存以及幾兆空間上很好的運(yùn)行。而Sun’s J2EE需要最少內(nèi)存為128M,以及31M硬盤空間。JBOSS啟動(dòng)速度要比J2EE快10倍。而且它能內(nèi)嵌SQL 數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行持久性BEAN處理,當(dāng)啟動(dòng)時(shí)會(huì)自動(dòng)啟動(dòng)。(J2EE裝載分離CloudScape SQL Server)。

  其中一個(gè)非常好的特性JBOSS能夠“熱”部署,“熱”部署的意思就是在部署B(yǎng)EAN只是簡(jiǎn)單拷貝BEAN的JAR文件到部署路徑下,如果BEAN已經(jīng)被LOAD,JBOSS卸載它,然后LOAD一個(gè)新版本BEAN。如果你需要更多的JBOSS特性,你可以查看關(guān)于JBOSS論壇的網(wǎng)站。如果需要支持,可以付費(fèi)聯(lián)系JBossGroup LLC。

  本章一步一步幫助你開(kāi)始用jboss進(jìn)行分布式開(kāi)發(fā):如何建立一個(gè)簡(jiǎn)單的BEAN,以及如何在jboss服務(wù)器上部署和在測(cè)試。

  3、必備條件

  JBOSS是一個(gè)純JAVA編寫的,需要一個(gè)JAVA系統(tǒng)和JDK1.3兼容。為了能便宜和運(yùn)行所有的例子,你需要有Ant 1.4或以上版本。在下節(jié)將會(huì)介紹如何獲得和安裝。當(dāng)然你要有開(kāi)發(fā)EJB基礎(chǔ)。
  4、安裝ANT

  我們?cè)诤芏鄷?shū)上以及網(wǎng)頁(yè)可能都看見(jiàn)過(guò)這個(gè)名字,到底它用來(lái)作什么的呢?Ant 是一個(gè)基于java的build工具。現(xiàn)在已經(jīng)有了許多的build工具,例如make、gnumake、nmake、jam等,而且這些工具都非常優(yōu)秀。Ant是一個(gè)跨平臺(tái)的Build工具。之所以Ant能跨平臺(tái),是因?yàn)锳nt不再需要你編寫shell命令,Ant的配置文件是基于XML的任務(wù)樹(shù),能讓你運(yùn)行各種各樣的任務(wù),任務(wù)的運(yùn)行是由實(shí)現(xiàn)了特定任務(wù)接口的對(duì)象來(lái)完成的。
有兩個(gè)版本Binary和Source 可以下載最新版本1.5.2。

Binary版: http://ant.apache.org/old-releases/v1.5.2/binaries/
Source版:http://ant.apache.org/old-releases/v1.5.2/source/

  關(guān)于這兩個(gè)版本的不同之處可以參考http://ant.apache.org/ 。如果下載不了可以向我索取QQ:182244794, Email: amaryllis@163.net 。

  在下載完Ant后,你解壓文件,全部文件會(huì)放在一個(gè)apache-ant-1.5.2路徑下。Ant文檔會(huì)釋放在docs/manual目錄下,你可以打開(kāi)網(wǎng)頁(yè)docs/manual/index.html來(lái)瀏覽關(guān)于ant文檔的內(nèi)容。 我用Windows系統(tǒng)釋放在c:/apache-ant-1.5.2路徑下。

  1) 設(shè)置ANT_HOME環(huán)境變量,指向你的ANT目錄。

  2) 需要設(shè)置JAVA_HOME環(huán)境變量,指向你的JDK目錄。

  3) 將%ANT_HOME%\bin加入到PATH環(huán)境變量中。

  4) 當(dāng)你不帶任何參數(shù)運(yùn)行ant時(shí),Ant會(huì)在當(dāng)前目錄找一個(gè)名叫build.xml的文件。如果沒(méi)找到,會(huì)有以下提示:

Buildfile : build.xml does not exist!Build failed

  為了測(cè)試ANT安裝是否成功,我建立了一個(gè)新的build.xml文件,放在當(dāng)前的目錄下%ANT_HOME%\samples。Build.xml內(nèi)容如下:

<!-- Simple Ant build script to test an Ant installation --><br />
<project name="TestInstall" default="run" basedir="."><br />
<target name="init">  <br />
<available file="ASimpleHelloObject.java" property="ASimpleHelloObject"/> <br />
</target> <br />
<target name="ASimpleHelloObject" unless="ASimpleHelloObject" depends="init"> <br />
<echo file="ASimpleHelloObject.java"><br />
public class ASimpleHelloObject<br />
{<br />
public static void main(String[] args) { <br />
System.out.println("ASimpleHelloObject.main was called"); }<br />
}<br />
</echo> <br />
<echo message="Wrote ASimpleHelloObject.java" /> <br />
</target> <br />
<target name="compile" depends="ASimpleHelloObject"> <br />
<javac destdir="." srcdir="." debug="on" classpath="."> <br />
<include name="ASimpleHelloObject.java"/> <br />
</javac> <br />
</target> <br />
<target name="run" depends="compile"> <br />
<java classname="ASimpleHelloObject" classpath="." /> <br />
<echo message="Ant appears to be successfully installed" /> <br />
</target><br />
</project><br />

  運(yùn)行ant 顯示結(jié)果如下:

c:\apache-ant-1.5.2\samples> antBuildfile: build.xml
Init :
AsimpleHelloObject:
[echo] Wrote AsimpleHelloObject.java
compile:
[javac] Compiling 1 source file to c:\apache-ant-1.5.2\samples
run :
[java] AsimpleHelloObject.main was called[echo] Ant appears to be successfully installed
BUILDE SUCCESSFUL
Total time :11 seconds.

  到此你安裝的ANT以及環(huán)境已經(jīng)設(shè)置成功。如果有以下警告
Warning: JAVA_HOME environment variable is not set. If build fails because sun.* classes could not be found you will need to set the JAVA_HOME environment variable to the installation directory of java.

  表示你需要設(shè)置JAVA_HOME環(huán)境,指定你安裝的JDK 目錄。如何運(yùn)用Ant 中的各種命令,我會(huì)在以后編寫《ANT文檔》介紹。
  5、安裝JBOSS

  1) 在安裝和運(yùn)行JBoss 之前,你必須檢查是否安裝了JDK,需要在PATH環(huán)境中,設(shè)置JDK的目錄。

  2)、 下載JBoss 服務(wù)器。JBoss 是一個(gè)壓縮文件,你可以下載最新版本。為了能支持Web Server,我用的是Windows平臺(tái),所以下載了jboss3.0.6-tomcat4.1.18。你可以到http://prdownloads.sourceforge.net/jboss/ 中直接下載。如果你使用的是Unix/Lunix平臺(tái)也可以從這個(gè)網(wǎng)址下載相應(yīng)的JBoss 服務(wù)器。

  3)、安裝

  (1) Lunix/Unix下安裝

  a、 你下載了對(duì)于Unix/Lunix版本的JBoss 服務(wù)器l 用JDK 的JAR工具來(lái)解壓文件到一個(gè)臨時(shí)目錄。

  b、 設(shè)置JBOSS_DIST指向JBoss 解壓后最頂級(jí)目錄。

  c、 然后到此目錄下

cd JBOSS_DIST/bin
sh run.shl

  運(yùn)行完后顯示信息如下:

bash-2.04$ /bin/sh run.sh
JBOSS_CLASSPATH=:run.jar:../lib/crimson.jar
jboss.home = /tmp/JBoss-2.2.2
Using JAAS LoginConfig: file:/tmp/JBoss-2.2.2/conf/default/auth.conf
Using configuration "default"
[Info] Java version: 1.3.1,Sun Microsystems Inc.
[Info] Java VM: Java HotSpot(TM) Server VM 1.3.1-b24,Sun Microsystems Inc.
[Info] System: Linux 2.2.16-22,i386
[Shutdown] Shutdown hook added
[Service Control] Registered with server
[Service Control] Initializing 24 MBeans
...
[Service Control] Started 24 services
[Default] JBoss 2.2.2 Started in 0m:7s

  (2) Windows下安裝

  a、 下載jboss3.0.6-tomcat4.1.18.zip, 然后用winzip解壓到一個(gè)目錄,我解壓在c:\jboss3.0.6-tomcat4.1.18目錄

  b、 解壓后基本上不需要配置,運(yùn)用bin目錄下的run.bat命令。

  c、 運(yùn)行run.bat命令,請(qǐng)看后臺(tái)有沒(méi)有什么異常拋出。

  d、 運(yùn)行成功請(qǐng)?jiān)L問(wèn)http://localhost:8083將會(huì)出現(xiàn)空白頁(yè)。訪問(wèn)http://localhost:8080將會(huì)出現(xiàn)Tomcat的歡迎頁(yè)面,如果出現(xiàn)Apache Tomcat/4.1.12 - HTTP Status 500 - No Context configured to process this request的錯(cuò)誤,這是正常的,因?yàn)槟氵€沒(méi)有發(fā)布.ear或.war應(yīng)用。當(dāng)然jboss-3.2.ORC3_tomcat-4.1.18.zip不會(huì)出現(xiàn)這樣的問(wèn)題,因?yàn)樵谀夸泂erver\default\deploy\中自帶了web測(cè)試文件webtest.ear 訪問(wèn)http://localhost:8082你可以看到Jboss起動(dòng)的服務(wù)。你可以運(yùn)行http://localhost:8080/jmx-console就會(huì)出現(xiàn)相關(guān)頁(yè)面。

  (3) Window NT 和2000補(bǔ)充

  對(duì)于NT和Win2k系統(tǒng)如果你要安裝NT或Win2k服務(wù)的話,可以把jboss加在系統(tǒng)服務(wù)中,避免你每次需要到j(luò)boss目錄下運(yùn)行run.bat命令,只是當(dāng)系統(tǒng)啟動(dòng)時(shí),自動(dòng)啟動(dòng)jboss服務(wù)器。

  a、 首先你需要下載javaservice.exe文件。l 編輯一個(gè)批處理文件,自己命名文件名,存入和JavaService.exe相同的目錄。我命名為Jboss_Tomcat_Service.bat此文件的內(nèi)容@echo offecho --------
echo Usage: %0 jdk_home tomcat_home (classic/hotspot/server)echo NOTE: You MAY NOT use spaces in the path names. If you know howecho to fix this, please tell me.echo JDK 1.4 does not come with hotpot server by default, you mustecho install this seperately if you wish to use it.echo Example: %0 ..\jdk ..\jboss30 hotspot
echo --------
if "%1" == "uninstall" goto uninstall
if "%1" == "-uninstall" goto uninstall
if "%1" == "" goto usage
if "%2" == "" goto usage
if "%3" == "" goto usage
if "%1" == "-help" goto usage
if "%1" == "-?" goto usage
if "%1" == "/?" goto usage
:install
JavaService.exe -install JBoss306 %1\jre\bin\%3\jvm.dll -Djava.class.path=%1\lib\tools.jar;%2\bin\run.jar -start org.jboss.Main -stop org.jboss.Main -method systemExit -out %2\bin\out.txt -current %2\bin goto eof
:uninstall
JavaService.exe -uninstall JBoss306
goto eof
:usage
echo -------- To Install JBoss 3.0.6 do
echo Usage: %0 jdk_home jboss_home (classic/hotspot/server)
echo NOTE: You MAY NOT use spaces in the path names. If you know how echo to fix this, please tell me.
echo JDK 1.4 does not come with hotpot server by default, you must echo install this seperately if you wish to use it.
echo Example: %0 ..\jdk ..\jboss30 hotspot
echo --------
echo -------- To Uninstall JBoss 3.0.6 do
echo Usage: %0 uninstall echo --------
goto eof
:eof

  e、 運(yùn)行以下命令

Jboss_Tomcat_Service C:\j2sdk1.4.0_02 C:\jboss-3.0.6_tomcat-4.1.18 server
其中C:\j2sdk1.4.0_02是java安裝的目錄 C:\jboss-3.0.6_tomcat-4.1.18是Jboss安裝的目錄,server是不變的參數(shù)

  f、將會(huì)看到安裝成功的命令,你到win2k或NT的Service中看我可以看Jboss306的服務(wù),你可以正常的起動(dòng)它。然后再查看各種網(wǎng)頁(yè)(同windows安裝相同)如果成功,到此恭喜你,你安裝了JBoss服務(wù)器。

  (4)問(wèn)題

  如果在在安裝了服務(wù),網(wǎng)頁(yè)顯示不正確。你需要多試幾次,首先運(yùn)行
Jboss_Tomcat_Service uninstall

  然后再運(yùn)行

Jboss_Tomcat_Service C:\j2sdk1.4.0_02 C:\jboss-3.0.6_tomcat-4.1.18 server。