JBoss AS 8中的Java EE 7和EJB 3.2支持
你们中有些人可能已经知道Java EE 7规范的Public Final Draft版本已经发布 。 除此以外,此版本的Java EE还引入了EJB规范的EJB 3.2版本。 与EJB 3.1规范相比,EJB 3.2具有一些新功能。 我在这里引用EJB 3.2规范中的文本,总结了新功能:
Enterprise JavaBeans 3.2体系结构扩展了Enterprise JavaBeans,以包括以下新功能和对早期EJB API的简化:
- 在此发行版中,以下功能的支持成为可选的,其描述移至单独的EJB可选功能文档:
- EJB 2.1和更早版本的Entity Bean组件协定,用于容器管理的持久性
- EJB 2.1和更早版本的Entity Bean组件协定,用于Bean管理的持久性
- EJB 2.1和更早版本的实体Bean的客户端视图
- EJB QL:容器管理的持久性查询方法的查询语言
- 基于JAX-RPC的Web服务端点
- JAX-RPC Web服务客户端视图
- 向EJB 3.2 Lite添加了对本地异步会话Bean调用和非持久EJB计时器服务的支持。
- 取消了获取当前类加载器的限制; 使用Java I / O软件包时,将“必须”替换为“应谨慎行事”。
- 为有状态会话Bean的生命周期回调拦截器方法添加了一个选项,该选项将在由生命周期回调方法的transaction属性确定的事务上下文中执行。
- 添加了一个选项来禁用有状态会话Bean的钝化。
- 扩展了TimerService API,以查询同一EJB模块中的所有活动计时器。
- 删除了对javax.ejb.Timer和javax.ejb.TimerHandle引用的限制,这些限制仅在bean内部使用。
- 宽松的默认规则,用于将会话Bean的已实现接口指定为本地或远程业务接口。
- 增强了标准激活属性列表。
- 通过实现AutoClosable接口增强了可嵌入的EJBContainer。
可以看出,建议的某些更改是次要的。 但是有一些有用的重大更改。 我们将在本文中介绍几个这样的更改。
1)新的API TimerService.getAllTimers()
EJB 3.2版本在javax.ejb.TimerService接口上引入了一个名为getAllTimers的新方法。 以前,TimerService接口具有(并且仍然具有)getTimers方法。 期望getTimers方法返回活动计时器,该活动计时器适用于调用了该方法的TimerService的bean(请记住:每个EJB有一个TimerService)。
在这个新的EJB 3.2版本中,预期新添加的getAllTimers()方法将返回适用于*同一EJB模块中的所有bean *的所有活动计时器。 通常,EJB模块对应于EJB jar,但如果将EJB打包在.war中,它也可以是.war部署。 这个新的getAllTimers()方法是一种方便的API,适合需要在该bean所属的EJB模块内查找所有活动计时器的用户应用程序。
2)能够禁用有状态bean的钝化
那些熟悉EJB的人会知道EJB容器为有状态Bean提供钝化(将有状态Bean的状态存储到某些辅助存储)和激活(将有状态Bean的保存状态加载)功能。 但是,如果用户应用程序希望这样做,则以前的EJB版本没有可移植的方式来禁用状态Bean的钝化。 新的EJB 3.2版本引入了一种方法,用户应用程序可以确定有状态的bean是否可以被钝化。
默认情况下,有状态Bean被认为具有“钝化能力”(类似于EJB的旧版本)。 但是,如果用户想禁用某些状态Bean的钝化支持,则用户可以选择通过注释或通过ejb-jar.xml部署描述符禁用它。 进行注释的方法就像将@ javax.ejb.Stateful注释上的passivationCapable属性设置为false一样简单。 就像是:
@javax.ejb.Stateful(passivationCapable=false) // the passivationCapable attribute takes a boolean value public class MyStatefulBean { .... }
在ejb-jar.xml中执行以下操作:
<?xml version="1.0" encoding="UTF-8"?> <ejb-jar xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd" version="3.2"> <enterprise-beans> <session> <ejb-name>foo-bar-bean</ejb-name> <ejb-class>org.myapp.FooBarStatefulBean</ejb-class> <session-type>Stateful</session-type> <!-- passivation-capable element takes either a true or a false value --> <passivation-capable>false</passivation-capable> </session> ... </enterprise-beans> </ejb-jar>
ejb-jar.xml中需要注意的两个重要事项是ejb-上的version = 3.2属性(以及http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd模式位置) jar根元素和session元素下的具有钝化能力的元素。 因此,如果您愿意的话,使用这两种方法都可以使您对有状态Bean禁用钝化。
JBoss AS8中的Java EE 7和EJB 3.2支持:
自从该规范的Public Final Draft版本发布以来,JBoss AS8就一直增加了对Java EE 7的支持。 已经添加并提供了对EJB 3.2的支持。 Java EE 7的其他一些更改也使其适用于最新的JBoss AS 8版本。 要跟踪JBoss AS8中Java EE 7的变化,请关注JIRA https://issues.jboss.org/browse/AS7-6553 。
要总体上使用Java EE 7或特别是EJB 3.2的已实现功能,可以从此处下载JBoss AS的最新夜间版本/二进制文件。 试试看,让我们知道如何进行。 对于任何反馈,问题或者您遇到任何问题,请随时在我们的用户论坛开一个话题在这里 。
参考:来自Jaikiran My Wiki博客的JCG合作伙伴 Jaikiran Pai 在JBoss AS 8中支持Java EE 7和EJB 3.2 。
翻译自: https://www.javacodegeeks.com/2013/03/java-ee-7-and-ejb-3-2-support-in-jboss-as-8.html
JBoss AS 8中的Java EE 7和EJB 3.2支持相关推荐
- ejb 2.1 jboss_JBoss AS 8中的Java EE 7和EJB 3.2支持
ejb 2.1 jboss 你们中有些人可能已经知道Java EE 7规范的Public Final Draft版本已经发布 . 除此以外,此版本的Java EE还引入了EJB规范的EJB 3.2版本 ...
- 为什么我会在2012年的新企业Java项目中使用Java EE而不是Spring
这个问题经常出现. 我的新项目也在2011年11月发布. 在这个新的Enterprise Java项目中,我将使用Java EE(JEE)代替Spring框架. 我知道:关于此主题的文章,博客和论坛讨 ...
- Java Web项目中缺少Java EE 6 Libraries怎么添加
Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...
- IDEA 新建项目或模块中没有Java EE和Web Application
IDEA 新建项目或模块中没有Java EE和Web Application选项解决 含有Java EE和Web App 解决办法 直到看了官方文档,
- MyEclipse的项目中把 java EE 5 Libraries 删掉后怎么重新导入
myeclipse中鼠标右击项目->properties->java Build Path=>Libraries=>Add Library...=>选择MyEclipse ...
- java ee7 ejb_使用MyEclipse开发Java EE应用:EJB项目开发初探(上)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> 一.MyEclipse EJB开发工具 Enterprise Java Beans (EJB)拥有JEE / Java EE ...
- 如何让 Eclipse Java EE 版安装 CDT 以同时支持 Java 和 C/C++ 开发
Eclipse 有不同的版本,但有时候我们需要集成不止一种开发环境,这时就需要安装其他插件以满足需求. Eclipse 的所有的版本下载: http://www.eclipse.org/downloa ...
- Day 17: 使用 JBoss Forge 和 OpenShift 构建部署 JAVA EE 6 应用
今天的"30天学习30种新技术"挑战,我决定学习一下JBoss Forge.JBoss Forge是一个创建基于Maven的Java应用的开发工具,它可以帮助Java开发者快速地开 ...
- jboss4 java_带有JBoss工具的OpenShift 3上的Java EE 7应用程序
jboss4 java 您可以使用最新版本的JBoss Tools OpenShift插件在Eclipse中创建和管理OpenShift应用程序. 他们要么预先捆绑了最新的 JBoss Develop ...
最新文章
- 如何从C#中的通用方法返回NULL?
- 程序员Web面试之JSON
- 视觉slam十四讲ch6曲线拟合 代码注释(笔记版)
- 基于 DirectShow 的播放器
- 搬寝室(HDU 1421 DP)
- 指定module_详解流量复制解决方案--NGINX的ngx_http_mirror_module模块实现
- [USACO13DEC]牛奶调度Milk Scheduling
- Idea 集成Lombok插件
- Kafka如何做到全局有序
- Atitit 计算机系统结构 计算机系统结构 Cpu 存储 cache 指令系统 目录 Line 56: 第2章指令系统设计 指令格式 寻址方式	1 Line 64: 第3章CPU及其实现
- Introduction to Computer Networking学习笔记(二十六):HTTP、SPDY
- UWB超宽带定位技术
- 微信开发者工具 http 调试
- excel想要把两列合并且用空格隔开
- 抱怨,是对自己无能的愤慨
- Oracle数据库Blob字段存储文本文件
- 简易的java程序,银行管理系统
- Jetbrains IDEA 打不开的解决方法(多次重装IDEA,突然打不开)
- Git Github Tips
- php yyyy mm dd,yyyy-mm-dd是什么格式
热门文章
- jax-ws和jax-rs_JAX-RS和OpenAPI对Hypermedia API的支持:任重而道远
- java中精确地小数_在Java等于方法中进行精确比较
- kafka netty_惠而浦:使用Netty和Kafka的微服务
- restful xml_使用入站适配器公开HTTP Restful API。 第1部分(XML)
- 使用ElasticSearch进行近实时索引
- spring预加载与懒加载_通过Spring将继承树加载到List中
- 在Java 8之前的项目中使用JUnit 5
- JMetro“ Metro”选项卡,Java的TreeView和ContextMenu(JavaFX)
- 编写自定义的AssertJ断言
- java permgen_Java 8:从PermGen到元空间