更新时间:2024-02-18 23:07
是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。
另外,JBoss应用服务器还具有许多优秀的特质。
其二,本身就是面向服务架构(Service-Oriented Architecture,SOA);
其三,具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。
因此,高度模块化的和松耦合。JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。
1、JBoss是免费的,开放源代码J2EE的实现,通过LGPL许可证进行发布。但同时也有闭源的,开源和闭源流入流出的不是同一途径。
2、JBoss需要的内存和硬盘空间比较小。
3、安装便捷:解压后,只需配置一些环境变量即可。
JAR文件到部署路径下即可自动加载;如果有改动,也会自动更新。
5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。
6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
7、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还提供了JBossAOP(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。同时,它提供的基于JBossAOP的AOP模块能够在可复制环境中实现细粒度、域级别复制,而且能够透明地管理复杂对象。在最新版的JBoss应用服务器中,用户能够直接通过JMX MBean服务访问到JBossCache提供的服务。
JBoss应用服务器5.0于2008年12月6日正式发布,新版应用服务器的模块化更强,可配置性更高。JBoss应用服务器5.0最终版完全兼容Java EE 5.0规范,具有一个微型内核和容器,支持OSGi和REST。
JBoss4包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。完整的纯Java的数据库引擎,(Java消息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持。早期的JBoss使用了ApacheTomcatWeb服务器,但在JBoss4.0中已经把Apache Tomcat内嵌到JBoss中了。后续又集成Java数据对象(JDO),对于JMS多点传送机制支持的修补,对J2EE1.4的完全实现和分布式事务机制。
JBoss的应用服务器控制和配置-JMX机制,运行一次可以部署所有的组件和服务。资源属性和可配置参数可以通过MBeans(可控制beans)映射和更改,这些控制可以在 JBoss的控制台进行设置。一旦我们的servlet-based的应用程序被部署,JBoss就自动安装一个部署MBeans,这个MBeans会被添加到JMX控制台的导航菜单中。通过这个MBean就可以部署或卸载WAR应用程序,或查看应用程序相关的属性。
Jboss4基于Jboss3.2,在J2EE标准特性方面,主要的改进包括:
· JBoss 4.0是业界第一家取得正式J2EE1.4认证的应用服务器,完全符合规范的J2EE标准
· 完全支持J2EE web services(JAX-RPC方式和WS4EE架构方式)和SOA
· 支持AOP模型,JBoss Aop极大的提高了生产力
· 与Hibernate紧密集成
· 通过一个内建的Caching构架提升集群功能和分布式Caching(TreeCache)
JBoss4完全遵循J2EE1.4标准,所以允许开发者在不同的应用服务器上重用J2EE组件(如EJB等),比如可以轻易的将部署在Weblogic或Websphere上的EJB迁移到JBoss上来,JBoss4比JBoss3.2实现了下面几个新的J2EE标准:
· JBoss4支持J2EE Web Services,包括JAX-RPC和J2EE架构的Web Services,使用EJB提供安全的Web Service环境,它是基于J2EE的SOA实现。JBoss3.2中旧的JBoss .NET Web Services API不再支持,新的Web Service实现是WS BasicProfile-1.0 compliant
· JBoss4实现JMS1.1替代了JBoss3.2中的JMS1.0
· JBoss4实现了JCA (Java Connector Architecture) 1.5替代了JBoss3.2中的JCA1.0
· JBoss4实现了新的Java Authorization Contract for Containers (JACC),JACC是JAVA2一个基本的权限机制,为访问EJB方法和web资源赋予授权描述,即J2EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,新的实现在语法上基于JBoss3.2,使用认证过的Subject声明Roles,认证与JAAS的authentication保持一致。并且security配置,JBoss4和JBoss3.2兼容
· JBoss4实现了EJB2.1规范.替代了JBoss3.2中的EJB2.0规范
JBoss 4特性:
1. JBoss4.2必须需要安装jdk5
2. JBoss Ejb3默认被安装
3. JBoss的web容器使用JBoss Web v2.x (集成tomcat6)
4. deploy/jboss-web.deployer 目录替换了原先的deploy/jbossweb-tomcat55.sar
5. JBoss Transactions v4.2为默认的事务管理器
6. JBoss WS提供web service功能
7. JGroups/JBossCache支持 channel multiplexing
8. JBoss Remoting更新到stable 2.2.x,JBossMQ(JBoss4.0使用)为默认JMS实现,但是可以使用JBoss Messaging替换。
9. EJB调用方式 由 rmi-invoker替换为JBoss Remoting 的 unified-invoker
10. log4j 和 commons-logging 升级到新版本
第二代基于服务的架构:核心的JBoss Microcontainer可以在多种编程和组件模型上提供改进后的级别加载、性能、生命周期管理和灵活性,其中包括Java EE、多种POJO、OSGi、Spring Framework和传统的现场和云操作环境。这种Microcontainer还提供将企业服务从核心运行时间引擎中分离出来的能力,使其更便于配置。
改进后的管理和配置:JBoss运营网络管理控制台的嵌入式版本可以提供一个全面的接口,用于管理和配置应用、控制应用服务器的运行,以及提供深入查看现场内外应用性能指标的能力。
Java EEF支持:JBoss企业应用平台支持全套的Java EE 5标准,并可为多种即将推出的Java EE 6标准提供支持,其中也包括Java EE Web Profile概念。
主要组件更新:更新的内容包括企业版的JBoss Application Server、Hibernate、Seam、JBoss Cache和JBoss Web Services,可为各类部署环境中的扩展性、高可用性和智能负载均衡提供性能增强特性。这一新版本还可支持分布式事务和全面的Web服务栈支持。
最新版的JBoss运营网络 - JBoss ON 2.3可支持运行管理。该版本提供全面的管理支持,包括在传统和基于云的部署中配置应用集群,并在多种运行环境中提供可用性和性能管理。
JBoss Developer Studio还可为开发人员提供开发工具。这种基于Eclipse的集成式开发环境能够提供全面的工具集,使开发人员能够使用Seam、Java EE、Spring、Hibernate、AJAX、RichFaces等技术,迅速建立丰富且交互性水平较高的应用和服务。
JBoss AS5中,大部分显著的新特性添加都源自于要将所有主要的JBoss子系统带到下一个阶段去。
JBoss Messaging 1.4现在取代了JBossMQ,成为缺省的JMS提供者。除了透明的故障恢复和智能的消息重分发外,JBM还支持即开即用的集群队列和主题。可以跨节点把消息复制到内存中,从而避免磁盘I/O,或者能使用支持大消息的分页技术将消息持久化到任何流行的关系数据库中。JBM证明,利用已完全出现的新的只扩展日志存储,原本就很卓越的性能和东西会变得更加优秀。
JBoss WebServices 3.0,完全支持JAX-WS/JAX-RPC、XOP和SwA的附件、还有一系列WS-*标准。JBWS转向了一个可插拔的架构,该架构允许更换底层的WebServices栈,所以你可以将JBossWS-native换成Sun Metro或Apache CXF。这样的话,你就可以因地制宜,使用最合适WebServices栈。
为了改进可伸缩性和集群Web会话的钝化,AS5中的集群支持SFSB的Buddy复制,以控制内存的使用。EJB3 Entity和Hibernate缓存有了很大的改进,因为可以针对实体和查询使用不同的缓存,它们分别是失效缓存和复制缓存。在底层的JGroups协议栈中,还有一些其它的性能优化。
JBoss Transactions是JBoss 5默认的事务管理器。JBoss TS已经与JBoss 5的Servlet容器——JBoss Web——一起在AS 4.2系列中进行了测试,JBoss Web是基于Apache Tomcat的一个实现,支持原有的APR-based连接器,它在可伸缩性和性能上不但要达到,而且要超越Apache Http服务器的水平。
就API来说,AS5是Java EE 5的实现,所有相关的API都会包含在内。对大部分Java EE 5“新的”API来说,比如EJB3、JAX-WS、JPA等,在JBoss AS 4.2系列中已经实现了,但由于JBoss AS5增加了TCK测试的覆盖范围,所以肯定会更为严格遵循规范。
JBoss5应用服务器提供了大量的新功能:除了支持最新的EJB 3.0规范外,新版的JBoss AOP也正式发布。Web Services 方面,JBoss 现在支持全部的J2EE Web Services,同时兼容Microsoft .NET;Messaging 项目采用了完整的JMS 1.1 实现,同时充分的改进了分布式目的单元格等功能的高可用性;JBoss Seam 中包括了一系列统一的革命性的组建设计模型和框架。同时JBoss 5中也集成了Hibernate 3.2
JBoss AS 4.2和企业应用平台的第一个版本(EAP 4.2)确实对AS 5造成了很大的影响。从零开始创建一个全新的内核、从MBeans转换到POJO、在最底层集成AOP、统一跨子系统的元数据处理、更改类加载系统、使部署器Aspect化,换句话说,就是改变内部架构、替换应用服务器的核心,同时还要保持与大部分已有服务的向后兼容性,为各种内部子系统引入合适的SPI。长远看来这是好事,因为它允许最大的可插拔性,以及在不同的运行时环境中(比如独立的EJB3或嵌入到不同的应用服务器中)按需要选取使用各种JBoss项目。
JBoss AS5不只是一个Java EE 5应用服务器。对下一代JBoss项目来说,它还寄托了成为最先进的服务器运行时环境的愿景。
JBOSS AS6 最大亮点是对Java EE 6 Web Profile规范的支持,一份关于最流行的Java EE标准的报告中,排名前5(JPA、JSP、EJB3、JSF及CDI)的都是Java EE Web Profile的必备组件。除了Java EE 6 Web Profile所需的这些组件外,AS 6还提供了可选的经过认证的组件:RESTEasy 2.1.0——JAX-RS1.1规范的实现;HornetQ2.1.2——JMS 1.1规范的实现以及JBoss Web Services CXF栈——JAX-WS 2.2规范的实现。
主要特性就是对JBoss Injection框架的完整实现。这对于满足Java EE 6平台规范所要求的Resources、Naming以及Injection是至关重要的。Infinispan v4.2.0是个开源的数据网格平台,从CR1里程碑发布时就加入了,现在它也集成到了JBoss AS 6中,并且是默认的分布式缓存提供者。Infinispan公开了一个兼容于JSR-107的Cache接口,你可以将对象存储其中。JBoss AS 6服务器可以动态探测并注册到前端的apache httpd服务器。
对于性能来说,JBoss AS 5与6之间有明显的变化。JBoss AS 6对启动性能的提升很明显,现在的平均启动时间是15秒。用户能够感觉到这种改进,一定程度上是因为延迟了随AS一同发布的管理控制台应用的部署,转而以“按需”方式提供,同时还实现了Timer Service的延迟部署。Microcontainer(v2.2)的增强(包括新的注解扫描库的实现)极大降低了应用部署的时间。
2011年07月13日,JBoss AS 发布了 7.0 正式版。这是一个全新的版本,带来多项的改进和新特性,特别是:
1. 极快(小于3秒的启动时间)
2. 轻量级
3. 模块化的核心
4.热部署、增量部署
5. 优雅的管理
6. 集群域的管理
7. First Class components
JBoss AS目前作为Redhat公司的商业产品JBoss Enterprise Application Platform的上游基础,为了使这两个产品有差异化,避免用户混淆,因此该公司在去年10月份就寻求为JBoss AS找一个新名字。
RedHat公司称,新名称WildFly反映了服务器“非常灵活、轻量、不羁、自由”的特性。
改名后的首个版本为WildFly 8,将接棒JBoss AS 7。RedHat公司表示,新版本不仅是名称上的变化,还带来了如下改进:
1.启动超快
2.模块化设计
3.非常轻量,内存占用非常少
4.更优雅的配置、管理方式
5.严格遵守Java EE7和OSGi规范
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的应用感兴趣,则最好能够阅读这本权威著作。
一、安装JDK
java应用当然首先需要安装java运行环境(JRE),JRE提供了运行java的基本环境。安装jboss需要jdk,jdk中包含jre.
安装完JDK后,需要做如下配置:
我的电脑→属性→高级-→环境变量,在系统变量中点击新建下面二项:
1. 名:JAVA_HOME,值:jdk的安装路径
在系统变量path中增加如下内容:;%JAVA_HOME%in;
这些做完后,在命令窗口中运行java -version有输出便可
二、安装Jboss
Jboss是Java EE应用服务器(就像Apache是web服务器一样),专门用来运行Java EE程序的。
安装jboss很简单,它不需要安装,直接解压到一个目录下即可
三、安装AOP
对于Jboss我们使用了一些其它组件:AOP,用它来做权限处理,(AOP是一个编程模型,用来对处理代码的方面,横切面),然后jboss自带有,但是自带的不能满足要求,所以需要单独安装和配置
下载解压后,把其中的jboss-40-install/jboss-aop-jdk50.deployer下的所有的文件拷贝到jboss目录的jboss/server/default/deploy/jboss-aop-jdk50.deployer下,覆盖其中的所有文件
打开jboss/server/default/deploy/jboss-aop-jdk50.deployer/META-INF/jboss-service.xml文件,把其中的< attribute name=”EnableLoadtimeWeaving”>false< /attribute>;上的false修改为true.
打开jboss/bin/run.bat(如果是在linux则是jboss/bin/run. s h)文件,修改其中的JAVA_OPTS=”-Dprogram. name= ”为JAVA_OPTS=”-D program. na me= -javaagent:pluggable-instrumentor.jar ”.其中有颜色的部分是加上的。
把aop解压目录下的lib/pluggable-instrumentor.jar文件拷贝到jboss/bin目录下
AOP安装完成
四、部署应用
跟apache一样,jboss也有一个部署目录,那就是jboss/server目录,其中有三个目录:all,default,minimal,代表了jboss提供的三种部署方式,all表示jboss提供的服务全部打开,default表示默认的jboss服务,minimal表示只打开最基本的。这里面可以增加自己的部署,我们只使用default。
进入default目录后,有以下几个目录:
conf:一些配置文件
data:保存的数据,比如有状态会话bean
deploy:部署目录,所有的应用都部署在这里面,相当于apache的htdocs
lib:部署的应用程序需要使用到的其它库(jar)
log:jboss的日志
tmp:部署应用是产生的临时文件
work:工作目录,所部署的应用(一些jar压缩文件)会被解压在这里
要部署我们的应用,还需要做以下几步:
A。把jboss/docs/examples/jca/mysql-ds.xml拷贝到jboss/server/default/deploy目录下,并做如下修改:
< connection-url>jdbc:mysql://你要连接的数据库的ip:3306/数据库名zeroDateTimeBehavior=convertToNull< /connection-url>
< driver-class>com.mysql.jdbc.Driver< /driver-class>
< user-name>;用户名< /user-name>
< password>;密码< /password>
B。下载jdbc驱动并把解压后的mysql-connector-java-5.XX-bin.jar拷贝到部署目录的lib中(server/default/lib)
到此jboss服务器和myro3应用就部署好了,现在只需要启动jboss,便可通过rcp客户端访问你的jboss
打开命令提示窗口,到jboss的bin目录下面,运行:run -b 你的ip 启动jboss便可
剩下的就是修改rcp客户端程序中myroConfig.properties把其中连接的jboss的ip修改为你的ip即可.
对于gwt应用的部署,到时候要提供一个war文件,把它部署到server/default/deploy下面就行了,然后访问http://你的ip:8080/war文件名就可以访问gwt程序.。同时把myro_server/myroConfig.properties部署到jboss/bin中。以上,Jboss环境搭建步骤介绍完毕。
1、bin:开始和停止JBoss的地方。
其中有两个主要的批处理文件:run.bat和shutdown.bat。要启动JBoss只要执行run.bat文件即可;要停止JBoss必须执行带参数的shutdown.bat。
一般运行命令:run -c 服务器名,例如:run -c all 或 run -c default 或自定义的服务器 run -c ejbtest。
注意,shutdown.bat文件直接执行并不会自动停止JBoss,它必须要输入参数,参数意义如下:
-h 显示帮助信息;
-D 设置系统属性;
-- 停止处理选项;
-n 通过制定JMX名字来停止服务;
-a 适配到指定的JNDI名称的远程服务;
-u 指定用户名称;
-p 指定用户密码;
-S 停止服务器;
-e 从虚拟机退出;
-H 暂停(挂起)。
一般,我们使用-S选项来停止服务器。即执行shutdown -S。
2、docs:放置JBoss的例子、测试脚本和各种脚本配置文件的DTD。
3、lib:放置JBoss所需要的部分jar包文件。
5、server:放置各启动类型的服务器端EJB配置所需要的文件等。
6、backup
重新启动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
启动服务程序(start方法)
在JBOSS中发布文件
1、制作JSP的war部署文件
2、制作Servlet的war部署文件
A、用[ javac
B、写一个web.xml配置文件
代码如下:
<servlet>
每个标记(标签)必须小写,否则会出错。
D、在web-inf目录下建立一个classes目录,放入编译好的HelloWorld.class文件
3、也可以不打包,把文件放在deploy下的同名文件夹下也可以。比如原来是制作成hello.war文件,可以建立一个名称为hello.war的文件夹,把要发布的文件拷贝到这个目录底下也可以发布成功。
JBOSS服务器使用详解
1、把文件解压到一个不含空格的,非中文目录下,如:jboss
2、加入MyEclipse —> Servers -> JBoss -> JBoss 5.x
(2)、Server name :default (3个默认的配置:minimial,default和all)
3、Apply -> OK
4、配置环境变量:
(1)、添加:变量名:JBoss_HOME 变量值
(3)、保存
6、发布web项目
JBOSS服务器目录结构作用介绍
目录 描述
------------------------------------------------------------------------------
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的临时文件。
补充
1、JBoss的默认端口是8080
2、对于NT和Win2000系统如果你要安装NT或Win2000服务的话,可以把JBoss加在系统服务中,避免你每次需要到JBoss目录下运行run.bat命令,只是当系统启动时,自动启动JBoss服务器。