解释1:
Jboss是 web服务器的一种,主要做ejb容器,和tomcat集成就可以jsp,servlet,ejb通吃;
Jboss有两种版本,一种是独立的,一种是和tomcat集成的,都是免费的;
EJB(enterprise javabean),不是javabean简单的升级,而是一些提供分布式访问的类
包括实体bean,会话bean,消息驱动bean
---------------------------------------------------------------
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。
本文通过尽量具体的演示来对JBoss3.0下的EJB开发和部署的进行一个简单的介绍,从而使刚开始使用JBoss的用户可以很快地进入到真正的J2EE应用开发中。
Enterprise JavaBean (EJB)规范定义了开发和部署基于事务性、分布式对象应用程序的服务器端软件组件的体系结构。企业组织可以构建它们自己的组件,或从第三方供应商购买组件。这些服务器端组件称作 Enterprise Bean,它们是 Enterprise JavaBean 容器中驻留的分布式对象,为分布在网络中的客户机提供远程服务。
解释2:
JBoss是一个开源的符合J2EE规范的应用服务器,作为J2EE规范的补充,Jboss中引入了AOP框架,为普通Java类提供了J2EE服务,而无需遵循EJB规范。Jboss通过类载入时,使用Javassist对字节码操作实现动态AOP框架,Javassist是一个开源的编辑字节码的类库。
Jboss中参考,切入点与方面也由普通Java对象实现,并使用XML文件配置。Jboss的连接点模型与AspectJ略有不同,提供了一系列预定义的切入点,包括类匹配,方法调用,构造器调用,域访问,特定的调用与被调用关系。通过这些切入点的逻辑运算,可以实现更为复杂的切入点。方面为Java类,参考是其中的一个方法,方面中不含切入点,方面主要为各种拦截器(Interceptor),拦截器即为只含一个参考的方面,单一连接点上可由多个拦截器形成拦截器链,拦截器执行额外的操作。对方法的拦截由Advisor类管理,在连接点依次调用拦截器,并最终调用被逻辑的方法。而关于切入点,参考已及方面的信息由AspectManager管理。此外,Jboss提供对元数据的支持,用于为类,方法,构造器以及域添加额外的属性,并可在运行期访问。
为实现拦截,Jboss需要修改类的字节码,大致过程如下。
XML配置文件中关于切入点,拦截器,元数据以及混合类的信息在应用程序部署时被读入、解析,并生成相应的对象,这些信息与实例化的对象由AspectManager管理。在需要混入方面代码的类载入时,AspectManager将创建Advisor类,将方面相关信息传递给它,并对类的字节码进行修改,之后将修改过的字节码交给类载入器完成类的装载。字节码的修改主要是对被载入的类添加一系列方法用于代理那些匹配连接点的方法调用,构造器调用,域访问以及方法导入,转为对Advisor类相应方法的调用。类中各方法将重命名,保留原方法体,并添加一个与原方法同名的方法,在这个方法中调用那些代理方法,用来将调用代理给Advisor类,或调用重命名的原方法。对于域访问,分别添加两个方法,对应于读与写操作,将域访问代理至Advisor类,在访问这个域的类中,则需将对域的访问转换为对上述方法的调用。对于构造器调用,则添加一个方法,将调用代理至Advisor类,并对构造对象的类的构造代码作相应转换。对于导入,被导入的类中将添加一个混合类实现的引用,并添加混合类接口中的方法,将对混合类方法的调用代理至Advisor类,并最终调用混合类的实现。相关类载入后,初始化Advisor类,填入拦截器链,以完成整个处理过程。
一、JBoss简介
近年来,在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。JBoss是免费的,开放源代码J2EE的实现,它通过LGPL许可证进行发布,这使得JBoss广为流行。Boss是一个运行EJB的J2EE应用服务器,例如:数据库访问JDBC、交易(JTA/JTS)、消息机制(JTS)、命名机制(JNDI)和管理支持(JMX)。它是开放源代码的项目,遵循最新的J2EE规范。目前的JBoss发布版2.2.4实现了EJB 1.1和部分EJB 2.0的标准、JMS 1.0.1、Servlet 2.2、JSP 1.1、JMX 1.0、JNDI 1.0、JDBC 1.2和2.0扩充(支持连接池 (Connection Polling))、JavaMail/JAF、JTA 1.0和JAAS1.0标准,JBoss是100%纯Java实现能运行于任何平台。
从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web),它体现了J2EE规范中最新的技术,并且它还在the JavaWorld Editors' Choice 2002评选中获得“最佳Java应用服务器”大奖。无论是学习还是应用,JBoss为我们提供了一个非常优秀的平台。
另外,JBoss应用服务器还具有许多优秀的特质:
它将具有革命性的JMX微内核服务作为其总线结构;
它本身就是面向服务的架构(Service-Oriented Architecture,SOA);
它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。
因此,它是高度模块化的和松耦合的。JBoss用户的积极反馈告诉我们,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。
二、JBoss的发展
为满足企业级市场日益增长的需求,JBoss公司从2003年开始就推出了24*7、专业级产品支持服务。同时,为拓展JBoss的企业级市场, JBoss公司还签订了许多渠道合作伙伴。在2004年6月,JBoss公司宣布,JBoss应用服务器通过了Sun公司的J2EE认证。 这是JBoss应用服务器发展史上至今为止最重要的里程碑。与此同时,JBoss一直在紧跟最新的J2EE规范, 而且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,还是在开源社区, JBoss成为了第一个通过J2EE 1.4认证的主流应用服务器。现在,JBoss应用服务器已经真正发展成具有企业强度(即,支持关键级任务的应用)的应用服务器。
近年来,Hibernate已经成为了事实上的持久化引擎。JBoss公司致力于将自身发展成为开源项目的社区,最新版的JBoss应用服务器已经将Hibernate集成为JMXMBean服务。这使得用户能够在应用服务器环境中直接使用Hibernate,而不管它是否处于J2EE上下文中。在最新版的JBoss应用服务器中,用户能够直接通过JMXMBean服务访问到JBossCache提供的服务。下一代的JBoss应用服务器(暂定名为,JBoss5.0)将提供大量的新功能。除了支持最新的EJB 3.0规范外,新版的JBoss AOP将同它正式发布。同时,JBoss开发团队还计划开发新的微内核层,即独立于JMX,使得它能够独立使用。
三、JBoss的服务器架构概述
JBoss的构架和其他J2EE应用服务器的构架有着巨大的不同。JBoss的模块架构是建立在JMX底层上的,下图展现了JBoss主要组件和JMX的联系。
JMX - 层次
JMX是一个可复用框架,它为远程(Remote)和本地(Local)管理工具扩展了应用。它的架构是层式架构。他们是实现层(instrumentation layer)、代理层(agent layer)和发布层(distribution layer)。其中,发布层还在等待未来的标准化。简要的表述是,用户使用管理Bean,MBean来提供获得相应资源的实现方法。实现层实现相关的特性资源并将它发布于JMX相关应用中,它的代理层控制和发布相应的注册在MBeanServer代理上的管理资源。
JBoss主要模块
主要的JBoss模块是在MeanServer上的可管理MBean。
1.JBoss EJB容器是JBoss服务器的核心实现。它有两个特性,第一是在运行期产生EJB 对象的Stub和Skeleton类,第二是支持热部署。
2.JBossNS是JBoss命名服务用来定位对象和资源。它实现了JNDI J2EE规范.
3.JBossTX 是由JTA/JTS支持的交易管理控制.
4.部署服务支持EJB(jar)、Web应用文档(war)和企业级应用文档(ears)的部署。它会时刻关心J2EE应用的URL情况,一旦它们被改变或出现的时候将自动部署。
5.JBossMQ使Java 消息规范(JMS)的实现。
6.JBossSX支持基于JAAS的或不支持JAAS机制的安全实现。
7.JBossCX实现了部分JCA的功能。JCA制订了J2EE应用组件如何访问基于连接的资源。
8.Web服务器支持Web容器和Servlet引擎。JBoss 2.4.x版本支持Tomcat 4.0.1,Tomcat 3.23和Jetty 3.x服务.
四、JBoss架构设计中的两个重要的特性
第一是使用JMX作为一个软件总线垂直的贯穿其所有的服务,通过将新的服务组件遵循JMX规范挂接上"总线",使得系统扩展现有的服务变得容易。可插入式框架被广泛的运用于服务的实现。开发者可以选择他们需要的服务并编写他们所需要的相应实现,通过定义在部署描述文件中,让JBoss服务器知道。
第二是容器被设计成为动态代理机制,这样使容器的实现变得简单和使开发者避免费劲的将jar文件进行预编译以获得stub和skeleton代码。但是这样做潜在的问题是性能和可测性,因为我们知道java反射机制会引起性能的损失。JBoss中存在着相应的优化方案并且在将来的研究中我们会论述该优化方法在什么时候工作并且是如何工作的。
分享到:
相关推荐
原因可能是jboss启动时,初始化数据源没有找到数据库驱动,而首次是连接是找不到数据源,但是开始初始化数据源,所以在连接是数据库连接正常, 解决办法:将数据库驱动程序放在%jboss_home%\server\default\lib...
初始化设置 60 4.4.2.2. 快速配置 61 4.4.2.3. 详细配置 63 4.4.2.3.1. 管理接口 63 4.4.2.3.2. 安全域 64 4.4.2.3.3. Outbound connections(外部连接) 68 4.4.2.4. 问题 68 4.4.3. JVM设置 68 4.4.3.1. 管理域 69 ...
4.4.2.1. 初始化设置 60 4.4.2.2. 快速配置 61 4.4.2.3. 详细配置 63 4.4.2.3.1. 管理接口 63 4.4.2.3.2. 安全域 64 4.4.2.3.3. Outbound connections(外部连接) 68 4.4.2.4. 问题 68 4.4.3. JVM设置 68 4.4.3.1. ...
spring-boot-jboss 示例spring-boot-jboss-initial - 在 JBoss 上不起作用的初始版本。 spring-boot-jboss-final - 适用于 JBoss 的固定版本。
JBoss Seam 简介......................................................................................................................................................................... 11 Chapter 1. ...
2.5.4 初始化托管Bean的属性 85 2.5.5 通过FacesContext访问应用环境 89 2.6 导航模型 91 2.6.1 静态导航 93 2.6.2 动态导航 93 2.7 使用UI标签创建视图页面 94 2.7.1 UI标签概述 94 2.7.2 UI标签的通用属性 97 ...
部署到 JBOSS EAP6.3 利用容器使用 JPA 管理实体使用 Postgresql 数据源连接到: JBOSS 事务管理器JNDI 数据源实体管理器初始设置创建一个 postgresql 数据源,其 JNDI 名称为: java:/postgresql_ds 。 注意 - 在 ...
v1.0-> / camel-cxf-ngis->用于PoC演示目的的初始版本。 请注意: 1-简化转换既不是解组也不是封送“位置”属性。 您可以将其添加到“ FromJsonToNGISProcessor”。 2-逻辑分为3个路由生成文件,以添加中间步骤。...
使用SpringMVC的验证器需要的四个jar包:classmate-1.4.0.jar,hibernate-validator-6.0.10.Final.jar,jboss-logging-3.3.2.Final.jar,validation-api-2.0.1.Final.jar
会话Bean必须实现SessionBean,生成EJB对象,value参数用于计数器的初始化,在无状态会话Bean中不能带参数。本例子中EJB对象使用完毕,将从内存中清除。 创建具有3个Count EJB对象的数组 jndi配置,硬编码到java中...
(C) FilterDispatcher类中的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作 (D) struts2读取到struts.xml的内容后,会将内容封装进Action对象中并存放在内存。 ~ 3.在Struts中提供了多种返回...
一、 环境及配置: 1、使用环境: A、操作系统:WindowsXP SP2版本 B、数据库:Oracle 9i 企业版 以及 MySql 5.0 C、Eclipse环境:MyEclipse 5.5.1GA All-In-One版 及 汉化包 ...二、 初始使用: ...
初始化 AWS 服务 创建 S3 存储桶 首先,让我们转到 amazon aws 控制台并创建一个名为scala-aws-lambda的存储桶。 我们需要它来存储 lambda 代码。 创建 DynamoDB 表 我们将数据存储在 Amazon 提供的 NoSQL 数据库 ...
使用执行的初始化脚本初始化的数据库 jndi上wyldfy服务器上声明的一个jta数据源:java地址:/jdbc/Ekologia 建造 在根启动“gradle assemble” 部署 启动野蝇(sudo service wildfly start) 在wildly的管理界面,...
案例9:Servlet读取初始化参数 案例10:实现多个Servlet之间信息传递 案例11:Servlet实现简单购物车程序 案例12:JSP与Servlet之间信息传递 案例13:使用Servlet过滤器记录访问页面地址和页面执行时间 案例14:实现...
4.2.4.WebLogic, WebSphere, JBoss的方案:结对服务器(Paired servers)复制 4.2.5.IBM的方案:集中状态服务器 4.2.6.Sun的方案:专用服务器 4.2.7.性能问题 4.2.7.1.何时备份会话 4.2.7.2.备份颗粒度 4.2.8.其他的...
(6)初始化数据库(只需要第一次): 一种。 创建一个新的数据库“草”,脚本如下,您也可以在pgAdmin工具中创建它。 使用OWNER = postgres ENCODING\n='UTF8'TABLESPACE = pg_default LC_COLLATE\n='English\uff0...
nettynetty 练习项目netty : 由jboss开发的基于JavaNIO(IO多路复用或异步IO)采用ReacotrIo设计模式的高性能,高伸缩性的网络通信框架,用来开发高性能网络应用程序
对于 JUnit 测试,自定义 testRunner 用于初始化 Weld。 在独立设置中,环境可以使用weld-se 启动,使用主类org.jboss.weld.environment.se.StartMain。 javax.cache 实现可以自由更改,这里使用ehcache(与javax....
为以本机方式创建Hibernate的sessionFactory创建了新的HibernateUtil.java类表USERS也在这里创建和初始化 删除了JPA内容 persistence.xml 通过Resources.java设置EntityManager 创建了jboss-d