WIKI使用導航
站長百科導航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應用
- 美國十大主機
JBoss
JBoss是一套應用程序服務器,屬于開源的企業(yè)級Java中間件軟件,用于實現(xiàn)基于SOA架構的web應用和服務。它包含一組可獨立運行的軟件。
JBoss是全世界開發(fā)者共同努力的成果,可以在任何商業(yè)應用中免費使用它,而不用支付費用。2006年,Jboss公司被Redhat公司收購。JBoss是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3.0的規(guī)范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。
優(yōu)點
- JBoss是免費的,開放源代碼J2EE的實現(xiàn),通過LGPL許可證進行發(fā)布。
- JBoss需要的內(nèi)存和硬盤空間比較小。
- 安裝便捷:解壓后,只需配置一些環(huán)境變量即可。
- JBoss支持"熱部署",部署B(yǎng)EAN時,只拷貝BEAN的JAR文件到部署路徑下即可自動加載它;如果有改動,也會自動更新。
- JBoss與Web服務器在同一個Java虛擬機中運行JBoss運行后后臺管理界面,Servlet調(diào)用EJB不經(jīng)過網(wǎng)絡,從而大大提高運行效率,提升安全性能。
- 用戶可以直接實施J2EE-EAR,而不是以前分別實施EJB-JAR和Web-WAR,非常方便。
- Jboss支持集群。
使用技巧
Jboss的目錄結(jié)構
- bin:開始和停止JBoss的地方。
其中有兩個主要的批處理文件:run.bat和shutdown.bat。要啟動JBoss只要執(zhí)行run.bat文件即可;要停止JBoss必須執(zhí)行帶參數(shù)的shutdown.bat。
注意,shutdown.bat文件直接執(zhí)行并不會自動停止JBoss,它必須要輸入?yún)?shù),參數(shù)意義如下:
- -h 顯示幫助信息;
- -D 設置系統(tǒng)屬性;
- -- 停止處理選項;
- -s 停止用JNDI URL指定的遠程服務;
- -n 通過制定JMX名字來停止服務;
- -a 適配到指定的JNDI名稱的遠程服務;
- -u 指定用戶名稱;
- -p 指定用戶密碼;
- -S 停止服務器;
- -e 從虛擬機退出;
- -H 暫停(掛起)。
一般,我們使用-S選項來停止服務器。即執(zhí)行shutdown.bat -S。
- docs:放置JBoss的例子、測試腳本和各種腳本配置文件的DTD。
- lib:放置JBoss所需要的部分jar包文件。
- client:放置EJB客戶端運行時所需要的jar包。
- server:放置各啟動類型的服務器端EJB配置所需要的文件等。
- backup
配置服務端口
修改文件: %JBOSS_HOME%\server\default\deploy\jbossweb-tomcat41.sar\META-INF\jboss-service.xml
在"8080"的配置后加入以下代碼
<!-- A HTTP/1.1 Connector on port 80 --> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5" maxProcessors="100" enableLookups="true" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false"/>
重新啟動JBoss即可
啟動過程
設置環(huán)境變量 JBOSS_CLASSPATH (可以自己加上安全管理器和xml解析器) a) %JBOSS_CLASSPATH%;
b) %JAVA_HOME%/lib/tools.jar;
c) run.jar;
d) ../lib/crimson.jar;
設置啟動參數(shù)JAXP(xml解析器和相應工廠)
啟動
設置配置信息
讀取配置文件JBoss.properties,保存在系統(tǒng)屬性中(System.properties)
設置缺省屬性jboss.home和java.security.auth.login.config
創(chuàng)建MBeanServer.的實例:
把配置文件和補丁文件所在的目錄指定給特定的遠程類加載器Mlet
加載保存配置文件(mlet會自動在配置文件目錄中查找)
初始化并啟動MBean
配置服務ConfigurationService
加載配置文件
保存配置
服務控制ServiceControl
初始化服務程序(init方法)
啟動服務程序(start方法)
在JBOSS中發(fā)布文件
- 制作JSP的war部署文件:
用"jar cvf hello.war index.jsp main.jsp"的方式生成把index.jsp和main.jsp文件加入到hello.war中。把生成的hello.war拷貝到jboss安裝目錄\server\default\deploy\下,部署成功。用"http://localhost:8080/hello/"或"http://localhost:8080/hello/index.jsp"這兩個地址進行測試。
- 制作Servlet的war部署文件
- 用[ javac -classpath "%CLASSPATH%;%jboss_home%\server\default\lib\javax.servlet.jar" HelloWorld.java ]的形式編譯HelloWorld.java(這是一個Servlet)得到HelloWorld.class
- 寫一個web.xml配置文件,代碼如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>hello.HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> </web-app>
每個標記(標簽)必須小寫,否則會出錯。
- 先在c:\servlet下建立一個web-inf目錄,在目錄中放入web.xml文件。
- 在web-inf目錄下建立一個classes目錄,放入編譯好的HelloWorld.class文件
- 在c:\servlet下執(zhí)行jar cvf hello.war *.*,很快就生成了一個名為hello.war的文件,接著把hello.war復制到jboss的安裝目錄\server\default\deploy\下完成部署。
- 也可以不打包,把文件放在deploy下的同名文件夾下也可以。比如原來是制作成hello.war文件,可以建立一個名稱為hello.war的文件夾,把要發(fā)布的文件拷貝到這個目錄底下也可以發(fā)布成功。
JBoss的服務器架構概述
JBoss的構架和其他J2EE應用服務器的構架有著巨大的不同。JBoss的模塊架構是建立在JMX底層上的,下圖展現(xiàn)了JBoss主要組件和JMX的聯(lián)系。
JMX層次
JMX是一個可復用框架,它為遠程(Remote)和本地(Local)管理工具擴展了應用。它的架構是層式架構。他們是實現(xiàn)層(instrumentation layer)、代理層(agent layer)和發(fā)布層(distribution layer)。其中,發(fā)布層還在等待未來的標準化。簡要的表述是,用戶使用管理Bean,MBean來提供獲得相應資源的實現(xiàn)方法。實現(xiàn)層實現(xiàn)相關的特性資源并將它發(fā)布于JMX相關應用中,它的代理層控制和發(fā)布相應的注冊在MBeanServer代理上的管理資源。
Boss主要模塊
主要的JBoss模塊是在MeanServer上的可管理MBean。
- JBoss EJB容器是JBoss服務器的核心實現(xiàn)。它有兩個特性,第一是在運行期產(chǎn)生EJB 對象的Stub和Skeleton類,第二是支持熱部署。
- JBossNS是JBoss命名服務用來定位對象和資源。它實現(xiàn)了JNDI J2EE規(guī)范.
- JBossTX 是由JTA/JTS支持的交易管理控制.
- 部署服務支持EJB(jar)、Web應用文檔(war)和企業(yè)級應用文檔(ears)的部署。它會時刻關心J2EE應用的URL情況,一旦它們被改變或出現(xiàn)的時候?qū)⒆詣硬渴稹?/li>
- JBossMQ使Java 消息規(guī)范(JMS)的實現(xiàn)。
- JBossSX支持基于JAAS的或不支持JAAS機制的安全實現(xiàn)。
- JBossCX實現(xiàn)了部分JCA的功能。JCA制訂了J2EE應用組件如何訪問基于連接的資源。
- Web服務器支持Web容器和Servlet引擎。JBoss 2.4.x版本支持Tomcat 4.0.1,Tomcat 3.23和Jetty 3.x服務.
JBoss架構設計中的兩個重要的特性
第一是使用JMX作為一個軟件總線垂直的貫穿其所有的服務,通過將新的服務組件遵循JMX規(guī)范掛接上"總線",使得系統(tǒng)擴展現(xiàn)有的服務變得容易??刹迦胧娇蚣鼙粡V泛的運用于服務的實現(xiàn)。開發(fā)者可以選擇他們需要的服務并編寫他們所需要的相應實現(xiàn),通過定義在部署描述文件中,讓JBoss服務器知道。
第二是容器被設計成為動態(tài)代理機制,這樣使容器的實現(xiàn)變得簡單和使開發(fā)者避免費勁的將jar文件進行預編譯以獲得stub和skeleton代碼。但是這樣做潛在的問題是性能和可測性,因為我們知道java反射機制會引起性能的損失。