`
chengzhi_hong
  • 浏览: 167436 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EJB学习心得

    博客分类:
  • J2EE
阅读更多

注意:在EJB中对Bean的定位是通过JNDI的名称来确定的

一:当EJB发布到JBOSS时,如果我们没有为它指定全局JNDI名称或修改其默认的EJB名称,
 JBOSS就会按照默认的命名规则为EJB生成全局JNDI名称。默认的命名规则如下:
 如果把EJB作为模块打包进后缀*.ear的JAVA EE企业应用文件,默认的全局JNDI名称是
  本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
  远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
 如果把EJB应用打包成后缀为*.jar的模块文件,默认的全局JNDI名称是
  本地接口:EJB-CLASS-NAME/local
  远程接口:EJB-CLASS-NAME/remote
二:通过远程接口调用EJB的过程
 首先客户端需要和EJB服务器建立Socket通信,在通信管道上他们需要来回发送IIOP协议消息。
 因为数据要在网络进行传输,存放数据的JAVA对象必须要序列化。
三:通过本地接口调用EJB的过程
 通过本地接口调用EJB,直接在内存中进行交互,这样可以避免网络开销、协议解析的开销和对象序列化的开销。
 但是大家必须要注意,只有客户端与EJB应用在同一个JVM内运行的时候,我们才能调用本地接口 。
四:如何通过使用注解方式注入并使用其他的EJB和服务
 注入和使用其他EJB的方式如下:
 @EJB EJB的接口 EJB的变量
 通过注解"@EJB"可以注入并使用其他的EJB,如果有多个EJB的类实现了同一个接口,那么在使用"@EJB"的时候
 需要明确指定是注入和使用哪一个EJB的Bean。指定方式如下:
 @EJB(beanName="EJB类的名称") EJB的接口 EJB的变量
 注入和使用其他服务的方式如下:
 @Resource 服务名称 服务变量
 注意在指定数据源的使用需要配置mappedName的属性值,例如:
 @Resource(mappedName="数据库的JNDI名称") DataSource dataSource
五:JMS中的消息
 消息传递系统的中心是消息,一条消息有三部分组成
 头(Header),属性(property),主体(body)
 消息有以下几种类型,他们都是派生自Message接口
 StreamMessage:一种主体中包含JAVA基原值流的消息,如填充和读取均按顺序进行。
 MapMessage:一种主体中包含一组名-值对的消息,没有定义条目顺序
 TextMessage:一种主体中包含JAVA字符串的消息(例如:XML消息)
 ObjectMessage:一种主体中包含序列化的JAVA对象的消息
 BytesMessage:一种主体中包含连续字节流的消息
 消息的传递模型为以下两种:
 点对点(point-to-point:PTP):该消息传递模型规定,一条消息只能传递给一个接收方,可以接受过时的消息。采用javax.jms.Queue表示。
 发布/订阅(publish/subscribe):该消息传递模型规定,一条消息可以传递给多个接收方,只能接受实时的消息。采用javax.jms.Topic表示。
六:如何发送消息(以Queue为例,如果是Topic则应把所有的Queue改为Topic)
 1.得到一个JNDI的初始化上下文(Context)
  InitialContext ctx = new InitialContext();
 2.根据上下文查找一个连接工厂QueueConnectionFactory。该连接工厂是用JMS提供的,不需要我们自己创建,
      每个工厂都绑定一个全局的JNDI,我们通过全局的JNDI来获取它
     QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("QueueConnectionFactory");
 3.通过连接工厂得到一个连接QueueConnection
  QueueConnection conn = factory.createQueueConnection();
 4.通过连接来建立一个会话(Session)
  QueueSession session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
  建立一个不需要事物的并且能启动确认消息已接受的会话
 5.查找目标地址
  Destination destination = (Destination)ctx.lookup(配置文件的JNDI名称);
 6.根据会话和目标地址来建立消息生产者MessageProducer
  MessageProducer producer = session.createProducer(destination);
  TextMessage msg = session.createTextMessage("hello world");
  producer.send(msg);
七:建立一个Message Driver Bean(以Queue为例,如果是Topic则应把所有的Queue改为Topic)
 1.实现javax.jms.MessageListener
 2.通过注解指定监听设置
  @MessageDriven(activationConfig ={
  @ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"),//监听消息传递的类型
  @ActivationConfigProperty(propertyName="destination",propertyValue="queue/studiozeroQueue"),//设置消息接收方
  @ActivationConfigProperty(propertyName="acknowledgeMode",propertyValue="Auto-acknowledge") //设置传递模型
  })
八:WEB服务

分享到:
评论

相关推荐

    J2EE Development Without EJB 学习心得

    在不使用EJB的情况下有效地管理事务;如何利用AOP和loC解决企业级软件开发中的常见问题;web层设计,以web层在设计良好的J2EE应用中的地位;J2EE应用中最有效的数据访问技术,包括JDBC、Hibernate和JDO;如何利用...

    EJB3.0学习心得

    ### EJB 3.0 学习心得及关键技术解析 #### EJB 3.0 概述 EJB (Enterprise JavaBeans) 是一种基于 Java 的企业级应用开发模型,它为构建可伸缩、可移植且健壮的企业级应用程序提供了一种标准化的方法。随着技术的...

    ejb 学习笔记6

    ### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...

    ejb 学习笔记4

    ### EJB学习笔记4:深入理解实体与JPA #### 实体的概念与作用 实体,在企业级Java开发中,特别是EJB(Enterprise JavaBeans)框架下,指的是具有持久化能力的POJO(Plain Old Java Object)类。不同于实体Bean...

    ejb 学习笔记8

    ### EJB学习笔记8:深入理解事务处理机制 #### 一、事务的背景知识 **事务**是指一系列操作,这些操作作为一个不可分割的工作单元来执行,即要么全部完成,要么完全不执行。事务的主要特性包括: - **原子性...

    ejb 学习笔记5

    ### 深入解析《ejb学习笔记5》——消息驱动Bean详解 #### 消息驱动Bean概述 消息驱动Bean(MDB,Message Driven Bean)是Enterprise JavaBeans(EJB)框架中的一个重要组成部分,主要用于接收并处理来自消息中间件...

    ejb 学习笔记7

    ### EJB学习笔记7知识点详解 #### 实体(消息)- 重点篇章解析 ##### 继承映射策略深入理解 在实体继承映射中,我们主要探讨了三种不同的策略,每种策略都有其特定的应用场景及优缺点。 1. **所有继承结构一张表...

    ejb 学习笔记3

    经典资料+个人心得,希望大家能喜欢

    ejb 学习笔记

    ### EJB学习笔记:深入解析会话Bean #### 一、会话Bean概览 **会话Bean**作为企业级Java Beans(EJB)模型的一部分,主要用于建模和管理业务流程,尤其关注业务逻辑的执行而非数据持久化。在EJB 3.0中,会话Bean...

    j2ee入门心得,EJB,Java WEB 开发

    ### j2ee入门心得,EJB,Java WEB 开发 #### 关键知识点概述: - **Java Web开发基础**:包括对JSP、Servlet等基础知识的理解。 - **MVC框架的应用**:如Struts 1与Struts 2的区别及应用场景。 - **Spring框架**:...

    JAVA工作流的学习心得(转)

    本文将基于标题“JAVA工作流的学习心得(转)”和描述“关于工作流的内容,与数据库及J2EE结合的相关技术!”深入探讨Java中的工作流技术和实践,尤其是jBPM这一开源工作流引擎。 首先,工作流是系统中实现业务流程...

    java基础学习心得.doc

    本文档总结了 Java 基础学习心得,并详细介绍了 SOAP 请求、EJB 组件实现代码中的限制、Java 平台的安全策略等内容。 一、SOAP 请求 SOAP(Simple Object Access Protocol)是一种基于 XML 的消息协议,用于在网络...

    Java学习心得分享

    ### Java学习心得分享 #### 一、引言 随着信息技术的快速发展,编程语言成为现代社会发展不可或缺的一部分。在众多编程语言中,Java凭借其强大的功能、跨平台的优势以及丰富的类库支持,成为了许多开发者首选的...

    java学习心得.doc

    Java学习心得主要涵盖Java编程的基础知识以及在企业级应用开发中的最佳实践,特别是关于Enterprise JavaBeans (EJB)组件的实现。以下是对标题和描述中提及的几个关键知识点的详细解释: 1. **HTTP POST方法**:在...

    大学生java学习心得(多篇).doc

    大学生 Java 学习心得 ...本文档提供了一个 Java 学习心得,涵盖了多个方面的知识点,包括 SOAP 协议、EJB 组件实现、Java 语言特性限制、Java 平台安全策略等。这些知识点对于大学生群体的 Java 学习非常有价值。

    jBPM3的学习心得

    **jBPM3学习心得** jBPM3是一款开源的工作流管理系统,主要用于处理业务流程的自动化和管理。它提供了一套完整的解决方案,包括流程建模、执行和监控,旨在帮助企业提高工作效率,规范业务流程,并实现流程的灵活...

    EJB3.0实例教程

    - **官方MSNG群**: 设立官方群组,为读者提供了一个交流平台,可以分享学习心得、讨论技术难题。 #### 第二章 运行环境配置 - **下载与安装**: 详细指导了EJB3.0运行环境的搭建过程,包括JBOSS服务器、开发工具等的...

Global site tag (gtag.js) - Google Analytics