6、ejb 引用

在ejb-jar.xml
<ejb-ref>
<description> an EJB reference to the Widget EJB(描述)</description>
<ejb-ref-name>ejb/WidgetEJB</ejb-ref-name>
<ejb-ref-type>session</ejb-ref-type>
<home>com.dhc.WidgetHome</home>
<remote>com.dhc.Widget</remote>
</ejb-ref>

在 weblogic-ejb-jar.xml
<ejb-reference-description>
<ejb-ref-name>ejb/WidgeEJB</ejb-ref-name>
<jndi-name>DeployedWidge</jndi-name>
</ejb-reference-description>

程序
Content ctx = new InitialContent();
Object h = ctx.lookup("java:/comp/env/ejb"); //环境变量是只读的,而且是当前ejb的本地变量.
WidgetHome home = (WidgetHome)PortableRemoteObject.narrow(h,WidgeHome.class);

7. 资源管理器的引用
定义资源管理的引用
例子: 建立 jdbc、DBPool与JDBC数据源的映射
在ejb-jar.xml
<resource-ref>
<description>(描述)</description>
<res-ref-name>jdbc/BDPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

在 weblogic-ejb-jar.xml
<resource-description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<jndi-name>DBPool</jndi-name>
</resource-description>

config.xml

<JDBCTxDataSource
name="DBPool"
Targets="myserver"
JDDIName="DBPool" (jndi名称)
PoolName ="DevelopmentPool"
/>

引用的优点
我们用大量的映射和配置,才建立了资源管理器的引用,但是还是很值得的。
以为便于部署人员重新配置应用而不需要修改实际的bean类代码。甚至也不需要修改ejb的配置描述器
java bean 代码

Content ctx = new InitialContent();
DataSource dataSource = (DataSource)ctx.lookup("java:/comp/env/jdbc/DBPool");

8 . 句柄: 作为一个串行化的对象,句柄中封装了足够的信息,以便重建对EJBObject的引用。
句柄可用于在两个相互合作的进程中传递EJBObject的引用。接受进程即可从句柄中取得EJBObject的引用。

为了取得句柄,可以调用EJBObject接口的getHandle()方法,返回一个Handle实例
为了重建EJBObject 引用。可以使用Handle 接口的getEJBObject()方法。

例子:
HelloWorld hw = home.create();
javax.ejb.Handle handle = hw.getHandle();
HelloWorld helloworld = (HelloWorld)PortableRemoteObject.narrow(handle.getEJBObject(),HelloWorld.class);

HomeHandle:
类似handle ,但不能用于引用EJBObject
HomeHandle 包含足够的信息,可以重建EJBHome()的引用。
差异:
是调用 getHomeHandle()方法 和getEJBHome()方法
例子片断:
Content ctx = new InitialContext();
Object h = ctx.lookup("HelloWorldEJB");
HelloWorldHome home = (HelloWorldHome)PortableRemoteObject.narrow(h,HelloWorldHome.class);
HomeHandle homehandle = home.getHomeHandle();
Object nh = homehandle.getEJBHome();
HelloWorldHome newHomeReference = (HelloWorldHome)PortableRemoteObject.narrow(nh,HelloWorldHome.class);

优点:
他们可以自动的存储重建引用所需的信息

9.使用事务的技巧:
(1) 一个事务不要涉及太多的操作.
(2) 容器管理和bean管理的事务
事务既耗费应用服务器中的资源,又耗费数据库资源,所以事务越短越好.
尽量使用容器管理事务而不要采用bean管理事务的方式.
(3) ejb遇到错误,需要强制事务回滚. 使用EJBObject.setRollbackOnly();
(4) 不能让事务涉及web层和表示逻辑
(5) 企业应用中不应当选用supports 事务属性,因为只有调用者开始一个事务后,ejb才能在事务中运行.

转载于:https://www.cnblogs.com/hibernate3-example/archive/2012/05/09/2492800.html

Weblogic EJB 学习笔记(2)精相关推荐

  1. Weblogic EJB 学习笔记(3)精

    编辑实体bean的高级课程 1. 怎样开发主健类 ejb的主健类主要用做持久存储和ejb容器中的唯一标识符. 通常主健类的字段直接映射到数据库中的主健字段. 如果主健只是由单个实体bean字段组成.且 ...

  2. 基于weblogic 的EJB 学习笔记-JSP教程,资料/其它

    http://www.west263.com/www/info/14655-1.htm ejb 学习笔记 1.ejb 基础知识 (1) 无状态会话bean     不保存客户机的会话状态     优点 ...

  3. 学习笔记21--高精地图技术概述

    本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...

  4. 学习笔记5--高精地图技术

    本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...

  5. 马良建模学习笔记——法式精雕床(一:床体制作)

    本篇文章将记录一些3DMax操作的小技巧以及法式精雕床的设计方法. 1.3DMax操作小技巧 F3键: 显示类型变为"真实" G 键: 取消.显示栅格 鼠标中键: 移动操作画面 a ...

  6. 马良建模学习笔记——法式精雕床(二:软包制作)

    本篇记录床体软包的制作过程,先晒一下床体整体效果图: 软包制作过程为: 1.选中床腿,在边界层级,右键封口,在多边形层级,点击"分离"将选中的多边形分离为对象,如下图: 2.&qu ...

  7. EJB3.0学习笔记---多接口的时,实现类处理方法:

    EJB学习笔记--- 1.胖客户端:指的是定义的接口太多了,接口做的工作太多; 胖接口: 2.EJB实现类型的定义,用注解的方式,当一个EJBbean,实现了多个接口的时候, 需要用注解的方式指明哪一 ...

  8. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  9. (java)玩转算法系列-数据结构精讲[学习笔记](一)不要小瞧数组

    前言: 课程:玩转算法系列–数据结构精讲 更适合0算法基础入门到进阶(java版) 此处是个人学习笔记,用作回顾用途 不要小瞧数组 1.使用java中的数组 Main.java: public cla ...

最新文章

  1. Linux下gcc中各种文件后缀说明
  2. 有关ArcGIS Server Server URL问题
  3. LightOJ - 1027 A Dangerous Maze —— 期望
  4. nowcoder 牛牛的最大兴趣组 质因子 + 思维
  5. datatables 基本增删改查(php)
  6. Javascript url 小逻辑
  7. HTML5新增视频标签(HTML5)
  8. Feature selection using SelectFromModel
  9. 拓端tecdat|R语言Gabor滤波进行目标图像纹理特征的提取
  10. 剑指Offer_编程题_16
  11. asp.net页面加载时间计算
  12. 面经 - JAVA知识点
  13. 【火灾疏散建模】基于MATLAB的火灾人员疏散建模编程和仿真分析
  14. 老兵新传 Visual Basic核心编程及通用模块开发pdf
  15. 挑选国外vps主机需要注意哪些呢
  16. 给未来写封信app服务器维护中,‎App Store 上的“给未来写封信”
  17. Java 实现双向链表
  18. 学安卓开发需要php,安卓后台开发需要学习什么?
  19. duilib适配高分屏(高DPI适配)
  20. 2021会宁三中高考成绩查询,会宁机电工业学校2021年招生录取分数线

热门文章

  1. 关于nunit调试VS2010中的4.0程序集的问题
  2. 一个拆分使用的存储过程例子
  3. solr elasticsearch比较
  4. POJ - 3257 Cow Roller Coaster (背包)
  5. 第38天:运算符、字符串对象常用方法
  6. Ubuntu下安装jdk经验分享
  7. linux服务器加入windows域时报错Ticket expired
  8. oracle复习笔记
  9. 创建弹出窗口的图片展示
  10. 代码 抠图_3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS,附教程