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版本。 与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 Timer服务的支持。
    • 取消了获取当前类加载器的限制; 使用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方法将返回适用于其计时器服务已被调用的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

ejb 2.1 jboss

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一些工厂实例

我时不时地发现自己摸索了一些旧的代码&#xff0c;以找到示例“我在哪里做过工厂一样的事情”。 上周再次发生这种情况时&#xff0c;我决定只查找所有示例&#xff0c;并创建一个示例项目和有关它的博客文章。 所以在这篇文章中&#xff0c;我&#xff1a; 从简单的“原始…

Android Studio Problems

p1、VT-x is disabled in BIOS 一般开机按F2进入BIOS界面&#xff0c;在configuration中将 Intel Virtulization Technology设置为Enabled p2、Genymotion显示DISCONNECTED&#xff0c;在Genymotion设置页面&#xff0c;将SDK路径改为Android Studio的SDK路径

eclipse工程导入Android Studio

在eclipse中选中要导出的工程&#xff08;此工程在eclipse中最好不要有错误&#xff09;&#xff0c;右键选择Export->Generate Gradle build files 在本地工程里生成了一个build.gradle文件。 在AS中选择 导入成功后会生成一个import-summary.txt 导入成功。

idea中drl文件_得分DRL:在OptaPlanner中更快,更轻松

idea中drl文件对于OptaPlanner &#xff08; Drools Planner&#xff09;6.0.0.Beta1&#xff0c;我已经用更优雅的ConstraintMatch系统替换了ConstraintOccurrence。 结果是您的DRL评分文件为&#xff1a; 快多了 更容易读写 错误的发生率要低得多&#xff0c;因为它们使得…

超棒的Glide图片加载

GitHub开源&#xff1a;https://github.com/bumptech/glide 超棒的工具&#xff0c;竟然还可以加载.gif !!Glide完全基于Picasso&#xff0c;沿袭了其简洁风格&#xff0c;并在其基础上做了大量优化与改进。 1、Glide默认的Bitmap格式是RGB_565&#xff0c;而Picasso默认ARGB_…

JUnit 5符合AssertJ

JUnit 5在断言库中带来了很多改进&#xff0c;这主要归功于Java 8和Lambda Expression支持以及新断言&#xff08;如assertAll &#xff0c; assertTimeout或assertThrows 。 尽管我真的很喜欢JUnit 5&#xff0c;但我相信AssertJ在生产级单元测试中仍然是必须的&#xff0c;我…

开源GraphView的使用--数据统计

最近做室内定位需要绘出加速度传感器输出的三个方向的加速度曲线&#xff0c;找到了开源https://github.com/jjoe64/GraphView-Demos&#xff0c;省去了要重新学MatLab **。 在http://www.android-graphview.org/download--getting-started.html下载.jar包。 1、GraphView的使…

json绑定到实体_绑定到JSON和XML –处理集合

json绑定到实体EclipseLink JAXB&#xff08;MOXy&#xff09;的优势之一是能够使用单个元数据集将对象模型映射到JSON和XML。 一个弱点是您需要在JSON键或XML元素上折中集合属性。 我很高兴地说这个问题已经在EclipseLink 2.5&#xff08;和EclipseLink 2.4.2&#xff09;中解…

Java JDK 10会有什么期望

由于我们刚刚习惯于9月发布的Java 9&#xff0c;因此距离下一代Java的发布只有几个月的时间了。 就在本月&#xff0c;计划中的Java Development Kit 10升级已进入开发的主要减速阶段。 在第一个初始阶段&#xff0c;可以修复一个到三个错误。 JDK 10是Java Standard Edition …

jpa配置映射包_JPA – Hibernate –包级别的类型映射

jpa配置映射包当我们最终成熟到可以在JPA中使用某些自定义类型映射时&#xff0c;我们通常会停留在某些提供程序特定的解决方案上&#xff0c;因为JPA本身并未定义任何用于执行此操作的机制。 让我为您展示一个JPA提供程序Hibernate的自定义类型映射定义的示例。 假设我们在项目…

弹簧和线程:异步

以前&#xff0c;我们开始使用spring和TaskExecutor &#xff0c;因此我们对如何在spring应用程序中使用线程更加熟悉。 但是&#xff0c;使用任务执行程序可能比较麻烦&#xff0c;尤其是当我们需要执行简单的操作时。 Spring的异步方法可以解决。 您不必为可运行对象和Tas…

C++一天一个程序(一)

例1: helloworld! #include int main() { std::cout << “Hello, world!n”; } 或者 #include using namespaces std; int main() { cout << “Hello, world!n”; } 换行还可以endl

我的对象命名

这是最常见的辩论之一。 大多数人对此主题有自己的见解&#xff0c;却没人能真正说出哪个是正确的。 我当然不能&#xff0c;但是尽管如此&#xff0c;我还是决定与大家分享我的想法&#xff0c;投入两美分&#xff0c;也许对某人会有帮助。 当我创建一个新类时&#xff0c;我…

C++一天一个程序(二)

#include #define NUMBER 4 int main() { std::cout << NUMBER << std::endl; } 或者 #include using namespaces std; int main() { cout << 4<< endl; } 注意: 第一段中NUMBER已经被定义&#xff0c;不可以在程序中再次赋值。建议不要用#define定义…

c++编写web服务_让我们编写一个文档样式的Web服务

c编写web服务您可能知道&#xff0c;我们可以使用四种主要的Web服务样式。 它们如下&#xff1a; 文件/文学 包装的文件/文学 RPC /编码 RPC /文字 当然&#xff0c;现在不建议使用RPC /编码样式。 如果您有兴趣&#xff0c;可以在此处找到这篇非常全面的文章&#xff0c;…

C++一天一个程序(三)

#include <stdio.h> class Trace { public:     Trace()  {noisy 0; }      void print(char* s)  { if (noisy)  printf("%s",s); }   void on()  { noisy 1; }      void off()   { noisy 0; }  private: int noisy;   };  C改…

Java 9:ServiceLoader

java.util.ServiceLoader类在运行时加载服务提供者/实现。 在编译时&#xff0c;ServiceLoader只需要知道Service接口。 借助Java9模块化&#xff0c;我们可以在运行时动态添加服务实现模块&#xff0c;而Application可以拥有新的实现&#xff0c;而不会影响任何事情&#xff0…

C++一天一个程序(四)

#include using namespace std; struct complex{  double real, imag;  complex(double 0.0, double 0.0); } complex&#xff1a;complex(double r, double i) {  real r; imag i; } inline ostream& operator<<(ostream &os, const complex &c) {…

C++一天一个程序(五)

(1)确定所求长方形的长和宽。 (2)确定计算长方形的周长和面积的公式并计算。 (3)输出计算结果。 (1)以面向过程程序设计思想编码。 #include using namespace std; void main(){ int perimeter,area; int length20,width10; perimeter2*(lengthwidth); arealength* width; cou…