JBoss Weed
在使用JBoss的過(guò)程中,收集到的一些小知識(shí)。(最后更新2007.01.12)
如何改變JBoss啟動(dòng)Tomcat的端口號(hào)
修改文件JBOSS_HOME/server/Your_Server/deploy/jbossweb-tomcat55.sar/server.xml,將其中默認(rèn)的8080端口號(hào)換成你所期望的端口號(hào)。Your_Server是你要啟動(dòng)的JBoss服務(wù)器名(如default),下同。
在一臺(tái)機(jī)器上啟動(dòng)兩個(gè)JBoss服務(wù)器
要啟動(dòng)兩個(gè)JBoss,關(guān)鍵是修改會(huì)造成沖突的端口號(hào),修改如下文件中的相應(yīng)端口號(hào)就可以了。
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>
建議:在修改這些端口號(hào)時(shí),最好后一個(gè)服務(wù)器中對(duì)應(yīng)的端口號(hào)比前一個(gè)服務(wù)器中對(duì)應(yīng)的端口號(hào)大(小)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)的位置之后,加入如下語(yǔ)句:
JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket, address=Your_Port, server=y, suspend=n
將
Your_Port
換成由你指定的端口,如8787。
然后就可以用Eclipse對(duì)該JBoss進(jìn)行遠(yuǎn)程調(diào)試了。
其實(shí)現(xiàn)在JBoss都已經(jīng)提供了相應(yīng)的語(yǔ)句(查找"8787"即可找到),只是被注釋掉了。
Windows,run.bat中已經(jīng)有該條語(yǔ)句了,去掉注釋即可使用。
Linux,run.sh中沒(méi)有這條語(yǔ)句,但run.conf中有該條語(yǔ)句,也只需要去掉注釋即可使用。
注意:由于默認(rèn)情況下,當(dāng)打開(kāi)debug端口后,JBoss在啟動(dòng)時(shí)將會(huì)監(jiān)控該端口,并暫停(讓用戶(hù)能夠有時(shí)間使用Debugger連接JBoss)。如果不希望暫停的話,需要將suspend=y改為suspend=n。
JBoss中的若干目錄
conf -- 含有指定JBoss核心服務(wù)的jboss-service.xml文件。同時(shí),還包括核心服務(wù)的其他配置文件。
data -- 這一目錄存儲(chǔ)持久化數(shù)據(jù),即使服務(wù)器發(fā)生重啟其中的數(shù)據(jù)也不會(huì)丟失。許多JBoss服務(wù)將數(shù)據(jù)存儲(chǔ)在這里,比如 Hypersonic數(shù)據(jù)庫(kù)實(shí)例。
deploy -- 用戶(hù)將應(yīng)用代碼(JAR\WAR\EAR文件)部署在此處。同時(shí),deploy目錄也用于熱部署服務(wù)(即,那些能夠從運(yùn)行服務(wù)器動(dòng)態(tài)添加或刪除的服務(wù))和部署JCA 資源適配器。因此,用戶(hù)能夠在 deploy 目錄看到大量的配置文件。尤其是,用戶(hù)能夠看到 JMX 控制臺(tái)應(yīng)用(未打包的WAR文件)。JBoss服務(wù)器將定期掃描該目錄,從而查找是否有組件更新或修改,從而自動(dòng)完成組件的重新部署。
lib -- 服務(wù)器配置所需的JAR件。用戶(hù)可以添加自身的庫(kù)文件,比如JDBC驅(qū)動(dòng),等等。
log -- 日志信息將存儲(chǔ)到該目錄。JBoss 使用Jakarta Log4j包作為其日志功能。同時(shí),用戶(hù)可以在應(yīng)用中直接使用Log4j日志記錄功能。
tmp -- 供部署器臨時(shí)存儲(chǔ)未打包應(yīng)用使用,也可以作為其他用途。
work -- 供Tomcat編譯JSP使用。
注:本主題內(nèi)容摘自《Getting Started with JBoss 4.0》(release 5)
恢復(fù)數(shù)據(jù)庫(kù)連接
當(dāng)時(shí)JBoss服務(wù)器已經(jīng)啟動(dòng),而它連接的數(shù)據(jù)庫(kù)服務(wù)器被重新啟動(dòng),那么連接將丟失。即,JBoss無(wú)法自動(dòng)地再連接上數(shù)據(jù)庫(kù)服務(wù)器,此時(shí)只能重新啟動(dòng)JBoss服務(wù)器。但在數(shù)據(jù)源文件中進(jìn)行簡(jiǎn)單配置,即可實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接的自動(dòng)恢復(fù)。
在此處,使用JBoss4.0.4GA + MySQL5.0.16,已經(jīng)配置了JBoss JNDI數(shù)據(jù)源--mysql-ds.xml。
在mysql-ds.xml文件中加入如下形式的語(yǔ)句:
<datasources>
<local-tx-datasource>
<check-valid-connection-sql>select * from some_table</check-valid-connection-sql>
<local-tx-datasource>
<datasources>
其中的SQL語(yǔ)句,是簡(jiǎn)單查詢(xún)被使用的數(shù)據(jù)庫(kù)中的一張表(當(dāng)然也可以是其它形式的SQL語(yǔ)句)。當(dāng)數(shù)據(jù)庫(kù)連接斷了之后,JBoss會(huì)察覺(jué)到,并嘗試重新建立數(shù)據(jù)庫(kù)連接。
參考資源:SetUpAHSQLDBDatasource
updating...