你们中有些人可能已经知道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支持相关推荐

  1. 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版本 ...

  2. 为什么我会在2012年的新企业Java项目中使用Java EE而不是Spring

    这个问题经常出现. 我的新项目也在2011年11月发布. 在这个新的Enterprise Java项目中,我将使用Java EE(JEE)代替Spring框架. 我知道:关于此主题的文章,博客和论坛讨 ...

  3. Java Web项目中缺少Java EE 6 Libraries怎么添加

    Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...

  4. IDEA 新建项目或模块中没有Java EE和Web Application

    IDEA 新建项目或模块中没有Java EE和Web Application选项解决 含有Java EE和Web App 解决办法 直到看了官方文档,

  5. MyEclipse的项目中把 java EE 5 Libraries 删掉后怎么重新导入

    myeclipse中鼠标右击项目->properties->java Build Path=>Libraries=>Add Library...=>选择MyEclipse ...

  6. java ee7 ejb_使用MyEclipse开发Java EE应用:EJB项目开发初探(上)

    你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> 一.MyEclipse EJB开发工具 Enterprise Java Beans (EJB)拥有JEE / Java EE ...

  7. 如何让 Eclipse Java EE 版安装 CDT 以同时支持 Java 和 C/C++ 开发

    Eclipse 有不同的版本,但有时候我们需要集成不止一种开发环境,这时就需要安装其他插件以满足需求. Eclipse 的所有的版本下载: http://www.eclipse.org/downloa ...

  8. Day 17: 使用 JBoss Forge 和 OpenShift 构建部署 JAVA EE 6 应用

    今天的"30天学习30种新技术"挑战,我决定学习一下JBoss Forge.JBoss Forge是一个创建基于Maven的Java应用的开发工具,它可以帮助Java开发者快速地开 ...

  9. jboss4 java_带有JBoss工具的OpenShift 3上的Java EE 7应用程序

    jboss4 java 您可以使用最新版本的JBoss Tools OpenShift插件在Eclipse中创建和管理OpenShift应用程序. 他们要么预先捆绑了最新的 JBoss Develop ...

最新文章

  1. 如何从C#中的通用方法返回NULL?
  2. 程序员Web面试之JSON
  3. 视觉slam十四讲ch6曲线拟合 代码注释(笔记版)
  4. 基于 DirectShow 的播放器
  5. 搬寝室(HDU 1421 DP)
  6. 指定module_详解流量复制解决方案--NGINX的ngx_http_mirror_module模块实现
  7. [USACO13DEC]牛奶调度Milk Scheduling
  8. Idea 集成Lombok插件
  9. Kafka如何做到全局有序
  10. Atitit 计算机系统结构 计算机系统结构 Cpu 存储 cache 指令系统 目录 Line 56: 第2章指令系统设计 指令格式 寻址方式 1 Line 64: 第3章CPU及其实现
  11. Introduction to Computer Networking学习笔记(二十六):HTTP、SPDY
  12. UWB超宽带定位技术
  13. 微信开发者工具 http 调试
  14. excel想要把两列合并且用空格隔开
  15. 抱怨,是对自己无能的愤慨
  16. Oracle数据库Blob字段存储文本文件
  17. 简易的java程序,银行管理系统
  18. Jetbrains IDEA 打不开的解决方法(多次重装IDEA,突然打不开)
  19. Git Github Tips
  20. php yyyy mm dd,yyyy-mm-dd是什么格式

热门文章

  1. jax-ws和jax-rs_JAX-RS和OpenAPI对Hypermedia API的支持:任重而道远
  2. java中精确地小数_在Java等于方法中进行精确比较
  3. kafka netty_惠而浦:使用Netty和Kafka的微服务
  4. restful xml_使用入站适配器公开HTTP Restful API。 第1部分(XML)
  5. 使用ElasticSearch进行近实时索引
  6. spring预加载与懒加载_通过Spring将继承树加载到List中
  7. 在Java 8之前的项目中使用JUnit 5
  8. JMetro“ Metro”选项卡,Java的TreeView和ContextMenu(JavaFX)
  9. 编写自定义的AssertJ断言
  10. java permgen_Java 8:从PermGen到元空间