實現功能:在單個jboss服務器實現經過不一樣的端口號來訪問不一樣的web項目,避免了當訪問非根項目必須是經過ip+/端口號+/項目名才能訪問。linux
參考文檔:http://my.oschina.net/xiaohong/blog/28151 web
Jboss服務器版本:4.2.2GAwindows
Jboss目錄結構:服務器
實現原理:在運行jboss\bin 啓動服務命令run.bat 默認加載 jboss\server\default中的項目,現經過運行default和 demo兩個文件實例,並相應綁定不一樣端口。ssh
當訪問8080端口時,加載default實例。 訪問80端口,加載demo實例。post
實現過程:url
1.複製jboss\server\default文件在當前目錄,並將目錄重命名爲:demospa
2.在jboss\server\demo\conf\jboss-service.xml文件中,查詢到.net
<mbean code="org.jboss.services.binding.ServiceBindingManager"code
name="jboss.system:service=ServiceBindingManager">
<attribute name="ServerName">ports-01</attribute>
<attribute name="StoreURL">${jboss.home.url}/docs/examples/binding-manager/sample-bindings.xml</attribute>
<attribute name="StoreFactoryClassName">
org.jboss.services.binding.XMLServicesStoreFactory
</attribute>
</mbean>
將註釋去除,並修改name=ServerName值,值包括posts-default,posts-01,posts-02,posts-03.
當前使用posts-01。
在jboss\docs\examples\binding-manager\sample-bindings.xml能夠查詢到ports-0X的端口值(若是文件不存在,請拷貝同版本到相應目錄)。
3.修改項目默認端口:
在jboss\server\demo\deploy\jboss-web.deployer\server.xml中修改實例demo默認訪問端口:
<Connector port="80" address="0.0.0.0"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
實例default默認端口任是8080;
4.運行項目(windows下)
1.在windows中運行doc命令,進入jboss\bin文件,而後執行
# ./Run.bat -c demo &
就能夠使用80端口訪問cvc文件中的項目。
2.在進入doc執行 run.bat
就能夠使用8080訪問default實例中得項目
5.關於使用ssh鏈接,但其一斷開,jboss服務就中止的解決方法(linux下):
問題場景:在啓動demo實例時,在ssh控制檯輸入「./run.sh -c demo」命令,但斷開ssh後,該實例就不能訪問。
解決方法:啓動實例時,命令輸入「./run.sh -c demo &」.運行完成後,執行#exit,jboss將放到後臺運行。如今斷開ssh遠程終端窗口,就能夠了。