JBoss介绍

来源:互联网 发布:maven 打包源码 编辑:程序博客网 时间:2024/05/23 01:07

JBoss介绍

JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从

JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统

(operating system for web),它体现了J2EE规范中最新的技术,并且它还在the JavaWorld

Editors' Choice 2002评选中获得“最佳Java应用服务器”大奖。无论是学习还是应用,JBoss

为我们提供了一个非常优秀的平台。有关JBoss的详细信息请参阅其主页http://www.jboss.org

JBoss的配置和使用没有提供图形向导界面,所以开发部署EJB相对比较复杂。

Enterprise JavaBean (EJB)规范定义了开发和部署基于事务性、分布式对象应用程序的服务器

端软件组件的体系结构。企业组织可以构建它们自己的组件,或从第三方供应商购买组件。这些

服务器端组件称作 Enterprise Bean,它们是 Enterprise JavaBean 容器中驻留的分布式对象

,为分布在网络中的客户机提供远程服务。

 JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。 因为

JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使用它,而不用支付费用。

JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范。但JBoss核心服

务不包括支持serverl/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

JBoss具有如下优点:


1、JBoss是免费的,开放源代码J2EE的实现,通过LGPL许可证进行发布。
2、JBoss需要的内存和硬盘空间比较小。
3、安装非常简单。先解压缩JBoss打包文件再配置一些环境变量就可以了。
4、JBoss能够"热部署",部署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就可以了。如果没

有加载就加载它;如果已经加载了就自动更新。
5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高

运行效率,提升安全性能。
6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
7、Jboss支持集群


    和配置可以直接拷贝使用,但是要改动 %JBoss-HOME%/bin/run.bat里JAVA-HOME的设置,改

成本机JDK的目录。运行run.bat来启动JBoss.
    关闭JBoss:关闭JBoss的 DOS 窗口或按"CTRL + C"

JBoss的目录结构:

1、bin:开始和停止JBoss的地方。
    其中有两个主要的批处理文件:run.bat和shutdown.bat。要启动JBoss只要执行run.bat文

件即可;要停止JBoss必须执行shutdown.bat。

  注意,shutdown.bat文件直接执行并不会自动停止JBoss,它必须要输入参数,参数意义如

下:
    h显示帮助信息;D设置系统属性;-停止处理选项;s停止用JNDI URL指定的远程服务;n通

过制定JMX名字来停止服务;a适配到指定的JNDI名称的远程服务;u指定用户名称;p指定用户密

码;S停止服务器;e从虚拟机退出;H暂停。

  一般,我们使用S选项来停止服务器。即执行shutdown.bat -S。

2、docs:放置JBoss的例子、测试脚本和各种脚本配置文件的DTD。

3、lib:放置JBoss所需要的部分jar包文件。

4、client:放置EJB客户端运行时所需要的jar包。

5、server:放置各启动类型的服务器端EJB配置所需要的文件等。

6、backup

 

  以80端口服务:

    修改这个文件: {%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就OK了

 

 

JBoss的启动过程:

 

    设置环境变量 JBOSS_CLASSPATH (可以自己加上安全管理器和xml解析器)

  a) %JBOSS_CLASSPATH%;

  b) %JAVA_HOME%/lib/tools.jar;

  c) run.jar

  d) ../lib/crimson.jar;

  设置启动参数JAXP(xml解析器和相应工厂)


    启动:


    设置配置信息

  读取配置文件JBoss.properties,保存在系统属性中(System.properties)

  设置缺省属性jboss.home和java.security.auth.login.config

  创建MBeanServer.的实例:

  把配置文件和补丁文件所在的目录指定给特定的远程类加载器Mlet

  加载保存配置文件(mlet会自动在配置文件目录中查找)

  初始化并启动MBean

  配置服务ConfigurationService

  加载配置文件

  保存配置

  服务控制ServiceControl

  初始化服务程序(init方法)

  启动服务程序(start方法)

 

    在JBOSS中发布文件:

 1、制作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"这两个

地址进行测试。

  2、制作Servlet的war部署文件

  A、用"javac -classpath "%CLASSPATH%;%jboss_home%

/server/default/lib/javax.servlet.jar" HelloWorld.java"的形式编译HelloWorld.java(这

是一个Servlet)得到HelloWorld.class

  B、写一个web.xml配置文件

  代码如下:

  <?xml version="1.0" encoding="UTF-8"?>

 每个标记必须小写,否则会出错。

  C、先在c:/servlet下建立一个web-inf目录,在目录中放入web.xml文件。

  D、在web-inf目录下建立一个classes目录,放入编译好的HelloWorld.class文件

  E、在c:/servlet下执行jar cvf hello.war *.*,很快就生成了一个名为hello.war的文件

,接着把hello.war复制到jboss的安装目录/server/default/deploy/下完成部署。


  <!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>


    3、也可以不打包,把文件放在deploy下的同名文件夹下也可以。比如原来是制作成

hello.war文件,可以建立一个名称为hello.war的文件夹,把要发布的文件拷贝到这个目录底下

也可以发布成功。

  补充

  1、JBoss的默认端口是8080

  2、对于NT和Win2000系统如果你要安装NT或Win2000服务的话,可以把JBoss加在系统服务中

,避免你每次需要到JBoss目录下运行run.bat命令,只是当系统启动时,自动启动JBoss服务器

  JBoss应用服务器现状与展望

  近年来,在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业

友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。另外,JBoss应用服务器还

具有许多优秀的特质。其一,它将具有革命性的JMX微内核服务作为其总线结构;其二,它本身

就是面向服务的架构(Service-Oriented Architecture,SOA);其三,它还具有统一的类装载

器,从而能够实现应用的热部署和热卸载能力。因此,它是高度模块化的和松耦合的。 JBoss用

户的积极反馈告诉我们,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。

  为满足企业级市场日益增长的需求,JBoss公司从2003年开始就推出了24*7、专业级产品支

持服务。同时,为拓展JBoss的企业级市场,JBoss公司还签订了许多渠道合作伙伴。比如,

JBoss公司同HP、Novell、Computer Associates、Unisys等都是合作伙伴。

  在2004年 6月,JBoss公司宣布,JBoss应用服务器通过了Sun公司的J2EE认证。这是JBoss应

用服务器发展史上至今为止最重要的里程碑。与此同时, JBoss一直在紧跟最新的J2EE规范,而

且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,还是在开源社区,JBoss成为

了第一个通过J2EE 1.4认证的主流应用服务器。现在,JBoss应用服务器已经真正发展成具有企

业强度(即,支持关键级任务的应用)的应用服务器。

  JBoss 4.0作为J2EE认证的重要成果之一,已经于2004年9月顺利发布了。同时,JBoss 4.0

还提供了JBoss AOP(Aspect-Oriented Programming,面向方面编程)组件。近来,AOP吸引了

大量开发者的关注。它提供的新的编程模式使得用户能够将方面(比如,事务)从底层业务逻辑

中分离出来,从而能够缩短软件开发周期。用户能够单独使用JBoss AOP,即能够在JBoss应用服

务器外部使用它。或者,用户也可以在应用服务器环境中使用它。JBoss AOP 1.0已经在2004年

10月发布了。

  展望下一代JBoss应用服务器,其重点关注的是EJB 3.0。当前,J2EE 1.4规范使用了EJB

2.1。其中,EJB 3.0的主要目标是简化EJB模型,即用户能够更容易开发EJB组件,并且能够在

EJB容器外部测试EJB组件。EJB 3.0规范草案已经于2004年6月推出。JBoss公司一直在积极参与

EJB 3.0规范的制定,并且在为EJB规范的发展贡献自己的力量。其中,Gavin King(Hibernate

的创立者)和Bill Burke(JBoss公司的首席架构师)已经为EJB 3.0规范草案贡献了很多内容。

  JBoss公司于2004年10月初发布了基于JBoss应用服务器实现的EJB 3.0预览版。尽管EJB 3.0

规范草案还处于初期发展和评审阶段,但这为J2EE社区测试EJB 3.0、并提供反馈信息提供了很

好的机会。这也证实了JBoss是一家创新型公司。JBoss一直在引领技术规范的发展。

  近年来, Hibernate已经成为了事实上的持久化引擎。JBoss公司致力于将自身发展成为开

源项目的社区,比如招募Gavin King和许多Hibernate开发者。其中,最新版的JBoss应用服务器

已经将Hibernate集成为JMX MBean服务。这使得用户能够在应用服务器环境中直接使用

Hibernate,而不管它是否处于J2EE上下文中。

  从2003年开始,JBoss启动了JBossCache项目。JBossCache是基于内存的、可复制的、事务

性的缓存系统,并且具有持久化状态存储管理能力。最近,它受到极大的关注。用户能够在

JBoss应用服务器或其他应用服务器中,或单独使用JBossCache。同时,它提供的基于JBoss AOP

的AOP模块能够在可复制环境中实现细粒度、域级别复制,而且能够透明地管理复杂对象。在最

新版的JBoss应用服务器中,用户能够直接通过JMX MBean服务访问到JBossCache提供的服务。

  下一代的JBoss应用服务器(暂定名为,JBoss 5.0)将提供大量的新功能。除了支持最新的

EJB 3.0规范外,新版的JBoss AOP将同它正式发布。同时,JBoss开发团队还计划开发新的微内

核层,即独立于JMX,使得它能够独立使用。另外,有关JBoss应用服务器的架构和开发,开发者

可以参考由Scott Stark博士著的《JBoss Administration and Development 3.2.x Third

Edition》一书(此书已由电子工业出版社引进并翻译出版,中文版书名为《JBoss管理和开发核

心技术(第三版)》)。Scott Stark博士是JBoss公司的创始人之一,他一直在领导JBoss产品

的研发。该书内容涵盖了JBoss应用服务器的方方面面,比如JMX微内核、客户端和服务器端拦截

器以及J2EE平台服务的实现等内容。如果开发者对JBoss内核和开发基于JBoss/J2EE的应用感兴

趣,则最好能够阅读这本权威著作。