JBoss Weed
在使用JBoss的過程中,收集到的一些小知識。(最后更新2007.01.12)
如何改變JBoss啟動Tomcat的端口號
修改文件JBOSS_HOME/server/Your_Server/deploy/jbossweb-tomcat55.sar/server.xml,將其中默認(rèn)的8080端口號換成你所期望的端口號。Your_Server是你要啟動的JBoss服務(wù)器名(如default),下同。
在一臺機器上啟動兩個JBoss服務(wù)器
要啟動兩個JBoss,關(guān)鍵是修改會造成沖突的端口號,修改如下文件中的相應(yīng)端口號就可以了。
1.
編輯文件
JBoss_Home
/server/
Your_Server
/deploy/jbossweb-tomcat55.sar/server.xml
<Service name="jboss.web" className="org.jboss.web.tomcat.tc5.StandardService">
<!-- A HTTP/1.1 Connector on port 8080 --> 原port=8080
<!-- A AJP 1.3 Connector on port 8009 -->
原port=
8009
<!-- SSL/TLS Connector configuration using the admin devl guide keystore --> 原port=8443
2.
編輯文件
JBoss_Home
/server/
Your_Server
/conf/jboss-service.xml
jboss-service.xml
<mbean code="org.jboss.web.WebService" name="jboss:service=WebService">
<attribute name="Port">8083</attribute>
<mbean code="org.jboss.naming.NamingService"
name="jboss:service=Naming"
xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">
<attribute name="Port">1099</attribute>
<attribute name="RmiPort">1098</attribute>
<mbean code="org.jboss.invocation.jrmp.server.JRMPInvoker"
name="jboss:service=invoker,type=jrmp">
<attribute name="RMIObjectPort">4444</attribute>
<mbean code="org.jboss.invocation.pooled.server.PooledInvoker"
name="jboss:service=invoker,type=pooled">
<attribute name="ServerBindPort">4445</attribute>
建議:在修改這些端口號時,最好后一個服務(wù)器中對應(yīng)的端口號比前一個服務(wù)器中對應(yīng)的端口號大(小)100。
如下鏈接中的文章講的更為詳細(xì):
Configuring Multiple JBoss Instances On One Machine
遠(yuǎn)程調(diào)試JBoss
編輯文件JBoss_Home-->bin-->run.bat/run.sh。
查找變量JAVA_OPTS,在它(至少是)第一次出現(xiàn)的位置之后,加入如下語句:
JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket, address=Your_Port, server=y, suspend=n
將
Your_Port
換成由你指定的端口,如8787。
然后就可以用Eclipse對該JBoss進(jìn)行遠(yuǎn)程調(diào)試了。
其實現(xiàn)在JBoss都已經(jīng)提供了相應(yīng)的語句(查找"8787"即可找到),只是被注釋掉了。
Windows,run.bat中已經(jīng)有該條語句了,去掉注釋即可使用。
Linux,run.sh中沒有這條語句,但run.conf中有該條語句,也只需要去掉注釋即可使用。
注意:由于默認(rèn)情況下,當(dāng)打開debug端口后,JBoss在啟動時將會監(jiān)控該端口,并暫停(讓用戶能夠有時間使用Debugger連接JBoss)。如果不希望暫停的話,需要將suspend=y改為suspend=n。
JBoss中的若干目錄
conf -- 含有指定JBoss核心服務(wù)的jboss-service.xml文件。同時,還包括核心服務(wù)的其他配置文件。
data -- 這一目錄存儲持久化數(shù)據(jù),即使服務(wù)器發(fā)生重啟其中的數(shù)據(jù)也不會丟失。許多JBoss服務(wù)將數(shù)據(jù)存儲在這里,比如 Hypersonic數(shù)據(jù)庫實例。
deploy -- 用戶將應(yīng)用代碼(JAR\WAR\EAR文件)部署在此處。同時,deploy目錄也用于熱部署服務(wù)(即,那些能夠從運行服務(wù)器動態(tài)添加或刪除的服務(wù))和部署JCA 資源適配器。因此,用戶能夠在 deploy 目錄看到大量的配置文件。尤其是,用戶能夠看到 JMX 控制臺應(yīng)用(未打包的WAR文件)。JBoss服務(wù)器將定期掃描該目錄,從而查找是否有組件更新或修改,從而自動完成組件的重新部署。
lib -- 服務(wù)器配置所需的JAR件。用戶可以添加自身的庫文件,比如JDBC驅(qū)動,等等。
log -- 日志信息將存儲到該目錄。JBoss 使用Jakarta Log4j包作為其日志功能。同時,用戶可以在應(yīng)用中直接使用Log4j日志記錄功能。
tmp -- 供部署器臨時存儲未打包應(yīng)用使用,也可以作為其他用途。
work -- 供Tomcat編譯JSP使用。
注:本主題內(nèi)容摘自《Getting Started with JBoss 4.0》(release 5)
恢復(fù)數(shù)據(jù)庫連接
當(dāng)時JBoss服務(wù)器已經(jīng)啟動,而它連接的數(shù)據(jù)庫服務(wù)器被重新啟動,那么連接將丟失。即,JBoss無法自動地再連接上數(shù)據(jù)庫服務(wù)器,此時只能重新啟動JBoss服務(wù)器。但在數(shù)據(jù)源文件中進(jìn)行簡單配置,即可實現(xiàn)數(shù)據(jù)庫連接的自動恢復(fù)。
在此處,使用JBoss4.0.4GA + MySQL5.0.16,已經(jīng)配置了JBoss JNDI數(shù)據(jù)源--mysql-ds.xml。
在mysql-ds.xml文件中加入如下形式的語句:
<datasources>
<local-tx-datasource>
<check-valid-connection-sql>select * from some_table</check-valid-connection-sql>
<local-tx-datasource>
<datasources>
其中的SQL語句,是簡單查詢被使用的數(shù)據(jù)庫中的一張表(當(dāng)然也可以是其它形式的SQL語句)。當(dāng)數(shù)據(jù)庫連接斷了之后,JBoss會察覺到,并嘗試重新建立數(shù)據(jù)庫連接。
參考資源:SetUpAHSQLDBDatasource
updating...