JBoss,作為J2EE應用服務器,以其EJB容器卓越的性能、技術的潮流性、開發部署J2EE應用的方便性贏得了很多J2EE開發者的信賴。其中,免安裝、基於JMX構架、熱部署(Hot Deploy)、快速開發EJB應用等幾項特征與其他商用服務器相比,顯得有些自得忘形的樣子。
<!-- frame contents -->
<!-- /frame contents -->
盡管其本身沒有重大的缺陷,但究竟是Open Source的開發模式,文檔很少,因此要很好的把握、精通開發基於JBoss的應用還是顯得有些力不從心。
本文結合作者的開發經驗,給出在JBoss 3.2.1下開發J2EE的一些很實用的相關的注重事項和規則。其中,讀者一定要知道JBoss 3.2.1作為JBoss的過渡產品(與JBoss 3.0.x、JBoss 4.x相比),自然有些東西和JBoss 3.0.x、JBoss 4.x有很大差別。但是,一般情況下,本文介紹的內容,大體上都適合JBoss各個版本。
下載完JBoss 3.2.1後,解壓到一個沒有空格的目錄路徑下面就可以運行JBoss,所以很方便,但前提是目標機器安裝了Java 2 Standard Edition。一切就緒後,我們就開始吧。(假設JBoss 3.2.1安裝在:C:jboss-3.2.1_tomcat-4.1.24,本使用default配置)
一、相關配置文件的設置
為開發J2EE應用,操作數據庫成了必不可少的內容;調節日志輸出的具體程度成了調試J2EE應用的要害;EJB應用的調優過程是J2EE應用的核心。
1. 數據源的配置:
在JBoss 3.2.1中,配置數據源的步驟很簡單,JBoss 3.2.1本身帶了主流數據庫的配置實例,於目錄下:C:jboss-3.2.1_tomcat-4.1.24docsexamplesjca。具體使用哪個配置文件取決於目標用戶的數據庫。假如是SQL Server 2000,則需要使用MSSQL-ds.XML文件(支持本地事務)或者mssql-xa-ds.xml文件(支持全局事務);假如是Oracle 9i數據庫,則需要使用oracle-ds.xml文件或者oracle-xa-ds.xml文件等。這裡以SQL Server 2000為例。
首先將mssql-ds.xml文件拷貝到目錄:C:jboss-3.2.1_tomcat-4.1.24serverdefaultdeploy下。然後打開文件,並作如下修改:
VSSDB
jdbc:microsoft:sqlserver://125.16.45.158:1433;DatabaseName=DDD
com.microsoft.jdbc.sqlserver.SQLServerDriver
sa
sa
50
200
假如目標J2EE應用只需要本地事務,則上述過程已經完成了Datasource的配置,同時這個配置將用於JDBC以及EJB通過JNDI使用。假如要實現EJB使用Datasource,則還需要修改位於目錄:C:jboss-3.2.1_tomcat-4.1.24serverdefaultconf下的standardjbosscmp-jdbc.xml文件。比如:
java:/VSSDB1
MS SQLSERVER2000
true
false
false
300
true
false
其中,java:/VSSDB中的VSSDB就是mssql-ds.xml配置的數據源;而“java:/”前綴表明該命名空間只是對JBoss本身可見,即運行於JBoss外的應用是不能夠使用這裡定義的數據源,這一點希望注重。
其次,MS SQLSERVER2000中的MS SQLSERVER2000可以在該文件的其他地方找到。(假如是其他數據庫,情況都是類似的)
2. 日志的輸出具體程度配置:
由於JBoss 3.2.1開發采用了Log4j治理其日志信息(嚴格地講,它擴展了Log4j),因此了解Log4j的機理,有助於理解JBoss 3.2.1治理日志的方式。JBoss 3.2.1采用JMX架構的同時,且以.xml文件類型為配置文件,因此可以找到位於目錄:C:jboss-3.2.1_tomcat-4.1.24serverdefaultconf下的log4j.xml文件。比如,其中一段配置示例如下:
<!-- The default pattern: Date Priority [Category] Message
-->
比如,為了調節JBoss 3.2.1控制台日志輸出的具體程度(調整為DEBUG級別),我們需要修改value=”INFO”,將INFO改為DEBUG。 假如開發Entity Beans,可以調節位於與log4j.xml文件同一目錄下的standardjboss.xml文件(該文件主要是提供修改EJB相關的調試、運行、調優、部署參數)。假如Entity Beans采用的為Standard CMP 2.x EntityBean,則將其中的屬性的取值改為true。
Standard CMP 2.x EntityBean
false
entity-rmi-invoker
false
完成上述兩步後,在調試Entity Beans時通過控制台,可以看到Entity Beans發出的JDBC調用細節。
3. Tomcat容器相關參數的配置:
假如使用JBoss 3.2.1與Tomcat 4.1.24的集成版本,則可以通過調節分別位於目錄:C:jboss-3.2.1_tomcat-4.1.24serverdefaultdeployjbossweb-tomcat.sar下的web.xml和目錄:C:jboss-3.2.1_tomcat-4.1.24serverdefaultdeployjbossweb-tomcat.sarMETA-INF下的jboss-service.xml文件來達到目標讀者特定需求。比如,假如想將HTTP服務端口改為80,則可以修改jboss-service.xml文件;假如想使目標J2EE應用處理更多的文件類型,可以修改web.xml文件。
4. 相關類庫的放置:
假如應用涉及到第三方類庫,比如JDBC Driver,則可以將這些JDBC Driver存放到目錄下:C:jboss-3.2.1_tomcat-4.1.24serverdefaultlib。注重,不是目錄:C:jboss-3.2.1_tomcat-4.1.24lib下。
假如是與目標J2EE應用相關,則可以存放到目標.war(或者.ear)裡面,或者xxx.war目錄中的WEB-INFOlib下。無論那種情形,都需要遵循J2EE規范。當然,JBoss 3.2.1的配置文件有很多,比如還有提供郵件服務的mail-service.xml文件等。