Ejb—开发模型与实例

1.    开发模型

  这里用最简洁的一个Ejb项目模型来简介Ejb的开发过程与调用原理。粗略的开发过程如下:

  ?  首先,新建Ejb项目,并部署到JBoss服务器(作为服务端)。

  ?  然后,新建普通Java项目作为客户端。(客户端的概念是相对的,它可以是任何类型的项目,包括可以是另一个Ejb项目)

  ?  最后,将Ejb项目中的接口打包为jar包,并添加到客户端,客户端即可以通过InitialContext来查找到Ejb,并调用Ejb的方法。

如下图所示:

  

2.    实例源码如下

  服务端

  新建Ejb项目,添加一个接口,与一个接口的实现:

  接口:

public interface FirstEjb {
	public String saySomething(String name);
}

  实现:

@Stateless
@Remote
public class FirstEjbBean implements FirstEjb {
	public String saySomething(String name) {
		return "你好," + name;
	}
}

  接口的实现上有两个注解,表示这个SessionBean是一个无状态的,远程Bean。至于有状态、无状态SessionBean或是远程、本地SessionBean的概念将在后面进行介绍。

  客户端

  开发客户端的步骤如下:

  1、首先创建普通java项目

  2、将客户端的依赖包添加到项目的类路径中【* JBOSS_HOME/client/*.jar】

  3、将上面服务端的接口打成jar包然后添加到客户端(为了操作方便不打jar包,可以直接将EJB项目添加到客户端项目中(目的是为了能够使用EJB的接口))

  4、客户端在类路径(src)下添加jndi.properties文件(源码如下),这是为了客户端的应用程序能够使用JNDI来查找EJB对象

  5、客户端即可以通过InitialContext接口来查找EJB,并调用EJB的方法!

  *EJB的JNDI命名是:EJB实现类的名称/访问方式

  源码:

  jndi.properties:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost

  测试类(FirstEjbClient):

public class FirstEjbClient {
	public static void main(String args[]) throws Exception {
		InitialContext context = new InitialContext();
		FirstEjb firstEjb = (FirstEjb) context.lookup("FirstEjbBean/remote");
		String s = firstEjb.saySomething("kobe");
		System.out.println(s);
	}
}

  可以看到客户端通过InitialContext()加载配置文件的(jndi.properties),然后根据配置文件即可通过JNDI查找到Ejb,并调用Ejb的方法。

3.    总结

  EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。SessionBean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个SessionBean来为客户端服务。SessionBean可以直接访问数据库,但更多时候,它会通过EntityBean实现数据访问。

时间: 2024-09-28 17:30:09

Ejb—开发模型与实例的相关文章

EJB_开发EJB容器模型的WEB服务

开发EJB容器模型的WEB服务 WEB服务 Web服务也是一种分布式技术,它与EJB最大的不同是,Web服务属于行业规范,可以跨平台及语言.而EJB属于Java平台的规范,尽管理论上可以跨平台,但实现起来比较复杂,所以其应用范围局限在了Java平台.它们两者的偏重点不一样,Web服务偏重的是这个系统对外提供什么功能,而EJB偏重的是如何使用一个个组件组装这些功能.就好比一个硬盘,它对外提供的是存储服务,这是Web服务的关注点,对于怎样组装这个硬盘,怎样构造这些小零件,Web服务并不关心,但这些却

MVC学习之数据库开发模式:模型优先实例介绍

数据库开发模型之模型优先的步骤如下: 1.在数据库中建立一个空的数据库[不需要建立任何表]     如果不事先创建一个新的数据库,如果在连接数据库那步不选着数据库,默认是在Master数据库中生成表的2.添加ADO.NET实体数据模型     选中Models文件夹.添加--新建项--数据--ADO.NET实体数据模型--取名[文中取名为ModelFirst]--控模型--完成3.修改实体容器名称    双击ModelFirst.edmx,在左边的空白页面上单击右键--属性---修改实体容器名称

EJB3.0 EJB开发消息驱动bean

(7)EJB3.0 EJB开发消息驱动bean JMS 一: Java消息服务(Java Message Service) 二:jms中的消息 消息传递系统的中心就是消息.一条 Message 由三个部分组成:             头(header),属性(property)和主体(body). 消息有下面几种类型,他们都是派生自 Message 接口.           StreamMessage:一种主体中包含 Java 基元值流的消息.其填充和读取均按顺序进行.          

EJB开发第一期---EJB开发配置

一.EJB 3.0简介 1.1 什么是EJB Enterprise JavaBeans是一个用于分布式业务应用的标准服务端组件模型.采用Enterprise JavaBeans架构编写的应用是可伸缩的.事务性的.多用户安全的.采用ejb编写的这些应用,可以部署在任何支持Enterprise JavaBeans规范的服务器平台,如jboss.weblogic等. EJB实际上是用于编写业务层代码.如果大家对于MVC (model-view-controller)结构的应用有所了解的话,我们知道一个

Java深度历险(一) Jboss+EJB的第一个实例

学习感悟:每次学习新的知识,都会通过第一个小的实例入手,获得成就感,经典的Hello Workd实例奠定了我们成功的大门哈,这些经典的实例虽小但是五脏俱全呢,很好的理解了,Ejb的核心. 今天主要以这个小实例,来学习EJB的分布式,我们可以将接口与实现放到一台计算机上,而客户端可以放到另一台机器上,当然分布式的意思很大了(下篇博客给大家讲解),快来看实例. 一:代码实现 1:定义接口 <span style="font-size:18px;"><span style=

EJB开发第一个无状态会话bean、开发EJB客户端

开发第一个无状态会话bean EJB中的三中bean: 会话Bean(Session Bean) 负责与客户端交互,是编写业务逻辑的地方,在会话bean中可以通过JDBC直接操作数据库,但大多数情况下都是通过实体bean来完成对数据库的操作. 实体Bean(Entity Bean) 它实际上属于java持久化规范(JPA)里的技术,JPA的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate.TopLink等ORM框架各自为营的局面. 消息驱动Bean(Messag

EJB开发第二期---开发具有本地接口的无状态Bean

一.EJB中的bean 1.1 EJB中bean分类 会话bean(session bean) 负责与客户端交互,是编写业务逻辑的地方,在会话bean中可以通过jdbc直接操作数据库,但大多数情况下都是通过实体bean来完成对数据库的操作. 实体bean(entity bean) 它实际上属于java持久化规范(简称JPA)里的技术,JPA的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate.TopLink等ORM框架各自为营的局面. 消息驱动bean(messa

TypeScript进阶开发——ThreeJs基础实例,从入坑到入门

前言 我们前面使用的是自己编写的ts,以及自己手动引入的jquery,由于第三方库采用的是直接引入js,没有d.ts声明文件,开发起来很累,所以一般情况下我们使用npm引入第三方的库,本文记录使用npm,typescript开发threejs3D项目,搭建基础实例,为以后开发具体业务做准备 项目结构   依旧是熟悉的SpringBoot项目,不同以往的是使用了npm管理工具来下载依赖js库,类似maven,同时为了解决typescript编译后引入npm库的路径有问题,导致浏览器报错的问题,我们

几大开发模型区别与联系

开发模型分别有瀑布模型,快速原型模型,增量模型,螺旋模型.  瀑布模型,是一种分工很细,力求每个环节都做到最好,前一个环节没做完不进入下一阶段的一种开发模型.就好比建房子,从设计图开始,确定后打地基,砌外墙,然后是里面每个小房间的建设.可是,瀑布模型有一个不好的地方,就是一旦前面的环节出错了,后面环节发现后得从该环节修改开始.这就增大了每个环节的严谨性.就好像设计图错了,建到一半的大楼就得停工或者是重做.  快速原型模型,是一种用建立原型的方法来明确软件需求的开发模型.在一些设计上,可能客户也不