关于 JBoss
JBoss 是全世界开发者共同努力的成果,一个基于 J2EE 的开放源代码的应用服务器。在不
到 12 个月的时间里有一百万以上的拷贝被下载。JBoss 是第一位的 J2EE 应用服务器。
JBoss 完全实现了 J2EE 的服务栈:
* EJB (Enterprise JavaBeans)
* JMS (Java Message Service)
* JTS/JTA (Java Transaction Service / Java Transaction API)
* Servlet and JSP (JavaServer Pages)
* JNDI (Java Naming and Directory Interface)
它还提供一些高级特性,比如集群、JMX、web Service。
它还整合了 IIOP(Internet Inter-ORB Protocol)。
因为 JBoss 代码遵循 LGPL 许可,你可以在任何商业应用中免费使用它,而不用支付费用。
LGPL - GNU Lesser General Public License,
参考 http://www.gnu.org/copyleft/lesser.txt。
安装 JBoss 应用服务器
首先,确定你已经安装了 J2SE JDK 1.3 或者更高的版本,并且进行了正确的配置。
这很基础,你需要正确配置以下环境变量:
* JAVA_HOME
* CLASSPATH
* PATH
然后到 JBoss 的 web 站点(http://www.jboss.org)下载 JBoss 的二进制版本。
你会发现所有当前的二进制版本分为 zip 和 tar.gz 格式的文件。
zip 适合 Windows 系统,而 tar.gz 适合 Unix 类的系统,选择你最适合你的版本。
解压缩你下载的文件到一个目录(你自己选择),在 windows 下,你可以是使用 winzip 等
工具,在 Unix 下,你可以用下面的命令:
$ gunzip jboss-3.2.0.tar.gz
$ tar xf jboos-3.2.0.tar
设置 JBOSS_HOME 环境变量,为你的 JBoss 的安装目录。
然后到 $JBOSS_HOME/bin 目录中,运行 "启动脚本":
Unix:
$ ./run.sh
Windows:
c:\jboss-3.2.0\bin>run.bat
实例,JBoss 二进制版本为 3.2.2,J2SDK 版本为 1.4.1:
windows 2k 系统下:
J2SDK 安装在 c:\j2sdk,JBoss 安装在 c:\jboss,环境变量的设置如下:
JAVA_HOME=C:\j2sdk
CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\*.jar;%JAVA_HOME%\jre\lib\*.jar
JBOSS_HOME=C:\jboss
PATH=%PATH%;%JAVA_HOME%\bin;%JBOSS_HOME%\bin
unix 类系统下:
J2SDK 安装在 / opt/j2sdk,JBoss 安装在 / opt/jboss,环境变量的设置如下:
JAVA_HOME=/opt/j2sdk
CLASSPATH=$CLASSPATH:$JAVA_HOME\lib\*.jar:$JAVA_HOME\jre\lib\*.jar
JBOSS_HOME=/opt/jboss
PATH=$PATH:$JAVA_HOME\bin:$JBOSS_HOME\bin
探索 JBoss 的目录结构
安装 JBoss 会创建下列目录结构:
表 1.1 JBoss 的目录
[pre] ------------------------------------------------------------------------------
目录 描述
------------------------------------------------------------------------------
bin 启动和关闭 JBoss 的脚本
client 客户端与 JBoss 通信所需的的 Java 库(JARs)
docs 配置的样本文件(数据库配置等)
doc/dtd 在 JBoss 中使用的各种 XML 文件的 DTD。
lib 一些 JAR,JBoss 启动时加载,且被所有 JBoss 配置共享。
(不要把你的库放在这里)
server 各种 JBoss 配置。每个配置必须放在不同的子目录。子目录的
名字表示配置的名字。
JBoss 包含 3 个默认的配置:minimial,default 和 all。
server/all JBoss 的完全配置,启动所有服务,包括集群和 IIOP。
server/default JBoss 的默认配置。
在没有在 JBoss 命令航中指定配置名称时使用。
server/default/conf JBoss 的配置文件。下一节你会学习到更多关于其内容的知识。
server/default/data JBoss 的数据库文件。比如,嵌入的数据库,或者 JBossMQ。
server/default/deploy JBoss 的热部署目录。放到这里的任何文件或目录会被 JBoss 自动
部署。EJB、WAR、EAR,甚至服务。
server/default/lib 一些 JAR,JBoss 在启动特定配置时加载他们。
(all 和 minimial 配置也包含这个和下面两个目录。)
server/default/log JBoss 的日志文件。
server/default/tmp JBoss 的临时文件。
------------------------------------------------------------------------------[/pre]
如果你想要定义自己的配置,要先在 server 目录下创建一个新的包含适当文件的子目录。
启动时可用 - c 参数指定要启动的配置:
Windows:
C:\jboss-3.2.0\bin>run.bat -c config-name
Unix
$ ./run.sh -c config-name
JBoss 配置文件
就像上一节说的,JBoss 的 server 目录可以包含任意数目的目录,每个表示一个不同的
JBoss 配置。
server/config-name/conf 目录包含 JBoss 的配置文件。
表 1.2 给出了这些不同的文件的用途:
表 1.2、JBoss 的配置文件
[pre] ------------------------------------------------------------------------------
文件 描述
------------------------------------------------------------------------------
jacorb.properties JBoss IIOP 配置
jbossmq-state.xml JBossMQ(JMS 的实现)用户配置
jboss-service.xml 启动时运行的 JBoss 的服务的定义(class loader,JNDI,
deployer 等)
log4j.xml Log4J 的配置
login-config.xml JBoss 安全配置(JBossSX)
standardjaws.xml JBoss 的遗留 CMP 1.1 引擎的默认配置。包含对各种数据库的
JDBC-to-SQL 的映射信息,默认 CMP 设置,日志配置等。
standardjbosscmp-jdbc.xml 除了被用于 JBoss 的 CMP 2.0 引擎之外,
与 standardjaws.xml 相同,
------------------------------------------------------------------------------[/pre]
JBoss 中的部署
JBoss 中的部署过程非常的简单、直接。在每一个配置中,JBoss 不断的扫描一个特殊的目
录的变化:$JBOSS_HOME/server/config-name/deploy
此目录一般被称为 "部署目录"。
你可以把下列文件拷贝到此目录下:
* 任何 jar 库(其中的类将被自动添加到 JBoss 的 classpath 中)
* EJB JAR
* WAR (Web Appliction aRrchive)
* EAR (Enterprise Application aRchive)
* 包含 JBoss MBean 定义的 XML 文件
* 一个包含 EJB JAR、WAR 或者 EAR 的解压缩内容,并以. jar、.war 或者. ear 结尾的目录。
要重新部署任何上述文件(JAR、WAR、EAR、XML 等),用新版本的文件覆盖以前的就可以
了。JBoss 会根据比较文件的时间发现改变,写在以前的文件,然后部署新的文件。
要重新部署一个目录,更新他的修改时间即可,比如 touch。
迅速浏览 JBoss 的内部结构
从 3.0 版本开始,JBoss 已经被围绕一些非常强大的概念来构建,允许用户自定义和调整他
们的服务器,而不局限于 J2EE。
灵活性允许 JBoss 可以用于不同的环境,范围从嵌入式系统到非常大的服务器集群。
下面几节将简要的介绍这些概念中的一部分。
微内核架构
JBoss 基于一个微内核设计,即组件可以在运行时插入以扩展它的行为。
这个设计非常适合 J2EE 平台,一个本质上基于服务的平台。这个平台包含持久化,事务,
安全,名称,消息,日志等服务。
其他应用服务器一般象单片集成电路一样,它们总是包含所有 J2EE 平台的服务。JBoss 采
用完全不同的方法:每个服务像组件一样被热部署于一个非常简洁的内核之上,称为
JBoss Server Spine。此外,用户被鼓励去实现他们自己的运行于 JBoss 上的服务。
因此,JBoss 应用服务器不限于 J2EE 应用,他被频繁的用于构建任何需要强大且可靠基础
的应用。因此,JBoss 的核心也被认为是 WebOS。
图 1.1 JBoss Server spine 和一些热部署的服务
[pre] JMS User Service A EJB Container
(JBossMQ) | |
| | |
+-------------------------------------------------+
| |
| JBoss Server Spine |
| |
+-------------------------------------------------+
| | |
JNDI JNDI |
(JBossNS) (JBossNS) Servlet/JSP
[/pre]
JBoss Server Spine 基于 Sun 的 JMX(Java Managerment eXtensions)规范,
以标准的方式使任何已部署的组件可以被管理。
按照 JMX 习惯中,JBoss 中一个已部署的服务被称为一个 MBean(a managed bean)。
更多关于 JMX 规范的信息可以在 Sun 的 web 站点找到:
http://java.sun.com/products/JavaManagement
热部署
自从 2.0 发布版本,JBoss 已经因是第一个支持热部署和重部署的基于 J2EE 的应用服务器而
著称,而那时很多应用服务器还需要重新启动以更新一个应用程序。
感谢微内核架构和革命性的 Java 类加载器,JBoss 3.0 和以后的发布版本进一步推动这种
逻辑。不但可以热部署和重新部署应用程序,而且他们可以热部署任何服务,并且跟踪服
务间的依赖。
这些特性使 JBoss 可被用于非常苛刻的环境,比如电信系统。
网络引导
JBoss 可以在网络的任何位置引导自己和你的应用程序,只要为 JBoss Server Spine 指定
一个简单的 URL。这允许你从一个中央 web 服务器管理一个 JBoss 节点集群的全部配置。这
给人深刻印象的机动性使新服务器的部署非常的简单。
JBoss 的 bootstrap 代码只有大约 50k,它适合很多嵌入式系统。
分开的调用者
JBoss 完全的分离了协议的处理器,从目标服务接收的调用最终为请求提供服务。因此,
当一个给定协议的新的处理器(称为一个 JBoss 的调用者)被部署到 JBoss,可以自动的通
过这个新的调用传送器到达所有已存在的服务和应用程序。
JBoss 3.2 目前支持下列类型的调用者:
* RMI
* RMI over HTTP
* IIOP
* JMS
* SOAP
* HA-RMI(Clustering over RMI)
来源: http://www.bubuko.com/infodetail-2429194.html