- 浏览: 452550 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
鱼里的yeol:
正在学习EJB 感觉有些吃力
Ejb3学习之二----Ejb3的Ejb Bean类型介绍 -
phoenix5870:
默认就是singleton的。
Spring中的Singleton模式和Java中的Singleton模式 -
jhys7s8jd:
pdf打印机下载 无水印http://www.onlinedo ...
PDFCreate工具的使用 -
wang371134086:
:e vil:
浅谈Struts2中的拦截器实现责任链模式 -
liu765023051:
亲,local与remote有什么区别呢
EJB学习之三---Local和Remote接口
这篇文章主要来学习Ejb的组成元素,重点介绍Local和Remote接口。
Key
EJB的组成
Local接口
Remote接口
Ejb Instance及工作方式
Sample实例
一 Ejb的组成
标准的Ejb至少由三个部分组成:Local接口,Remote接口以及Ejb Instance。
二 Local接口
1. Local接口,称为Home接口,继.承接基类javax.ejb.Local.从Ejb2.0开始出现的 新的接口,本质上是Java RMI接口.
2. 对于Local接口的使用,只能在本地使用。它列出了所有定位/创建/删除Ejb实例的方法。
3. 定义local接口的方法:
1) 在Ejb文件中定义:
@Local(value={Interface1, interface2,..})
2) 在Ejb文件中定义:
@Local(Interface1,Interface2,..)
3) 在Interface文件中定义
@Local
三 Remote接口
1. Remote接口列出Ejb类的业务逻辑方法。集成基类javax.ejb.Remote.本质上是Java RMI接口.
2. 定义local接口的方法:
1) 在Ejb文件中定义:
@Remote(value={Interface1, interface2,..})
2) 在Ejb文件中定义:
@Remote(Interface1,Interface2,..)
3) 在Interface文件中定义
@Remote
四 Ejb instance及工作方式:
对于Ejb的工作方式,如附件中的图:
五 Sample
1.Interface 定义:
1)UserManage
2)UserIdManage
3)UserNameManage
2.Ejb :
1)
deploy到Jboss服务器上,其Ejb name为:UserManageEjbBean.
3)JavaBean:
4) EjbClient:
(1) Main Class:
run Main,Console出现的Log:
UserId:0
UserName:Jamson
(2)web 页面:
deploy web project,输入:http://localhost:8080/EjbWebProject_Client/index.jsp
显示:
UserID:10
UserId:100
Key
EJB的组成
Local接口
Remote接口
Ejb Instance及工作方式
Sample实例
一 Ejb的组成
标准的Ejb至少由三个部分组成:Local接口,Remote接口以及Ejb Instance。
二 Local接口
1. Local接口,称为Home接口,继.承接基类javax.ejb.Local.从Ejb2.0开始出现的 新的接口,本质上是Java RMI接口.
2. 对于Local接口的使用,只能在本地使用。它列出了所有定位/创建/删除Ejb实例的方法。
3. 定义local接口的方法:
1) 在Ejb文件中定义:
@Local(value={Interface1, interface2,..})
2) 在Ejb文件中定义:
@Local(Interface1,Interface2,..)
3) 在Interface文件中定义
@Local
三 Remote接口
1. Remote接口列出Ejb类的业务逻辑方法。集成基类javax.ejb.Remote.本质上是Java RMI接口.
2. 定义local接口的方法:
1) 在Ejb文件中定义:
@Remote(value={Interface1, interface2,..})
2) 在Ejb文件中定义:
@Remote(Interface1,Interface2,..)
3) 在Interface文件中定义
@Remote
四 Ejb instance及工作方式:
对于Ejb的工作方式,如附件中的图:
五 Sample
1.Interface 定义:
1)UserManage
public interface UserManage { public void addUser(User user); }
2)UserIdManage
public interface UserIdManage { public void addUserId(User user); }
3)UserNameManage
public interface UserNameManage { public void addUserName(User user); }
2.Ejb :
1)
import javax.ejb.Local; import javax.ejb.Remote; import javax.ejb.Stateless; /** * @author Jamson Huang * */ @Stateless(name="UserManageEjbBean")/*rename ejb name*/ @Remote(value={UserManage.class,UserNameManage.class})/*定义Remote接口*/ @Local(value={UserManage.class,UserIdManage.class})/*定义Local接口*/ public class UserManageBean implements UserManage,UserNameManage,UserIdManage { public void addUser(User user) { System.out.println(user.getUserName()); user.setUserId(10); } public void addUserName(User user){ System.out.println(user.getUserName()); user.setUserName("EJB"); } public void addUserId(User user){ System.out.print(user.getUserId()); user.setUserId(100); } }
deploy到Jboss服务器上,其Ejb name为:UserManageEjbBean.
3)JavaBean:
import java.io.Serializable; /** * @author Jamson Huang * */ public class User implements Serializable { /** * */ private static final long serialVersionUID = 1089875714097918835L; private String userName; private int userId; /** * @return the userName */ public String getUserName() { return userName; } /** * @param userName the userName to set */ public void setUserName(String userName) { this.userName = userName; } /** * @return the userId */ public int getUserId() { return userId; } /** * @param userId the userId to set */ public void setUserId(int userId) { this.userId = userId; } }
4) EjbClient:
(1) Main Class:
import javax.naming.InitialContext; import com.ejb.bean.user.User; import com.ejb.bean.user.UserManage; import com.ejb.bean.user.UserNameManage; /** * @author Jamson Huang * */ public class UserManageEjbClient { public static void main(String[] args) throws Exception { InitialContext context = new InitialContext(); UserManage userManage = (UserManage)context.lookup("UserManageEjbBean/remote"); User user = new User(); user.setUserName("Jamson"); userManage.addUser(user); System.out.println("UserId:"+user.getUserId()); UserNameManage userNameManage = (UserNameManage)context.lookup("UserManageEjbBean/remote"); userNameManage.addUserName(user); System.out.println("UserName:" + user.getUserName()); } }
run Main,Console出现的Log:
UserId:0
UserName:Jamson
(2)web 页面:
<%@ page language="java" import="java.util.*,javax.naming.*,com.ejb.bean.user.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Ejb Interface test page</title> </head> <body> <% Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url", "localhost:1099"); props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); InitialContext context = new InitialContext(props); UserManage userManage = (UserManage)context.lookup("UserManageEjbBean/local"); User user = new User(); user.setUserName("Jamson"); userManage.addUser(user); out.println("UserID:"+user.getUserId()); UserIdManage userIdManage = (UserIdManage)context.lookup("UserManageEjbBean/local"); userIdManage.addUserId(user); out.println("UserId:"+user.getUserId()); %> </body> </html>
deploy web project,输入:http://localhost:8080/EjbWebProject_Client/index.jsp
显示:
UserID:10
UserId:100
发表评论
-
OS Workflow Intruction
2011-03-14 01:58 1690OSWorkflow是一个灵活的工作流引擎,设计成可嵌入到企业 ... -
EJB学习之五---MDB(消息驱动EJB)
2010-09-06 13:32 2318前面已经介绍过EJB的Session Bean,这篇文章主要介 ... -
SSL单双向验证原理(转)
2010-06-07 22:34 2940Key points SSL验证 双向SSL ... -
Spring2.5学习之三----AOP研究
2010-05-31 12:09 6524Key Points AOP的基本概念 Advice的类型 A ... -
Spring2.5学习之二----依赖注入
2010-05-30 17:22 2480Key points 依赖注入的原理 依赖注入的方式---XM ... -
Spring学习之一----创建Bean的三种方法
2010-05-30 14:29 27811关键字 BeanFactory ApplicationCont ... -
EJB3学习之四----EJB3新特性(元数据注解和依赖注入)
2010-05-13 01:39 4186EJB3新特性 元数据注解 依赖注入 一 EJB3新特性 ... -
Ejb3学习之二----Ejb3的Ejb Bean类型介绍
2010-05-11 23:01 3297关于Ejb3的Ejb bean类型介 ... -
Ejb学习之一---EJB3+Jboss4.2配置开发
2010-05-09 02:59 2907昨天,打算把Ejb整理下,最早用到Ejb+Jboss是在三年前 ... -
Struts Taglib库之(一)Bean讲解
2010-05-05 23:29 0最近准备换工作,也想把一些工作中用到的技术进行链接起来,就把它 ... -
转:Hibernate中cascade和inverse的相关
2011-11-19 17:51 691FROM:http://developer.51cto.com ... -
Struts1和Struts2有何不同?
2010-04-19 00:42 0Struts1和Struts2的区别和对比: Action ... -
Struts2中的Vistor模式
2010-04-19 00:40 1574Visitor访问者模式定义 作用于某个对象群中各个对象的操作 ... -
Spring中的Singleton模式和Prototype模式
2010-04-19 00:06 1843对于在Spring+Struts2结合配置Action=&qu ... -
WebService介绍
2010-04-18 17:01 2989记得初次接触WebService是 ... -
Spring中的Singleton模式和Java中的Singleton模式
2010-04-17 17:09 12705对于Spring中实现Singleton模式,是以IOC容器为 ... -
JavaMail来读取和发送邮件的基本流程
2010-04-15 01:21 1952在应用程序中使用JavaMail来读取邮件的基本流程如下: ... -
SSH框架优缺点【转】
2010-04-15 00:53 6188在过去的一年里,可能 ... -
J2EE面试题
2010-04-14 11:17 0一、基础问答 1.下 ... -
JTOM
2010-04-13 00:24 0JTOM是一个基于Java开放源代码的事物处理管理器。它遵 ...
相关推荐
EJB(Enterprise JavaBeans)是Java企业级应用开发的核心组件之一,主要用于构建可复用、安全和事务处理的服务器端应用程序。本主题将探讨“Local”和“Remote”两种方式访问EJB的知识点。 首先,我们要理解EJB的两...
- Remote接口适用于远程客户端,Local接口适用于在同一应用内的通信。 6. **EJB的并发和事务** - WebLogic Server支持多线程访问EJB,通过设置bean的并发策略(如Synchronized或Unsynchronized)来控制并发行为。...
4.1.3 开发存在Remote与Local接口的无状态Session Bean ...17 4.2 STATEFUL SESSION BEANS(有状态BEAN)开发20 4.3 STATELESS SESSION BEAN与STATEFUL SESSION BEAN的区别...22 4.4 如何改变SESSION BEAN的JNDI ...
4.1.3 开发存在Remote与Local接口的无状态Session Bean ...17 4.2 STATEFUL SESSION BEANS(有状态BEAN)开发20 4.3 STATELESS SESSION BEAN与STATEFUL SESSION BEAN的区别...22 4.4 如何改变SESSION BEAN的JNDI ...
3. **EJB接口和方法**:EJB通过接口暴露其服务,这些接口包括业务接口(Business Interface)、远程接口(Remote Interface)和本地接口(Local Interface)。业务方法定义了EJB提供的服务。 4. **EJB部署描述符**...
EJB 2.0 为不同类型的Bean定义了特定的接口,例如,实体Bean通常实现Home接口和Remote接口,而会话Bean可以有无接口、Local接口或Remote接口。 **9. 容器管理和组件接口** EJB 2.0 引入了Business Interface(业务...
EJB技术还涉及接口和实现的分离,通过远程接口(Remote Interface)和本地接口(Local Interface)使得客户端可以透明地调用bean的方法。此外,EJB 3.0引入了注解(Annotations),简化了bean的配置,使得开发者可以...
- **同时提供Remote和Local接口**:结合两种接口类型的优势。 2. **有状态Session Bean** - 开发并部署有状态Session Bean。 3. **区别对比** - 无状态与有状态Session Bean的主要差异在于状态管理和生命周期。 4...
- **@Local、@Remote:**定义本地和远程接口。 - **@EJB:**用于依赖注入EJB实例。 - **@Schedule:**用于定时任务。 #### 五、EJB3 实现业务逻辑 1. **定义接口:** - 使用`@Local`或`@Remote`注解来定义业务...
Tomcat下web工程调用JBOSS部署的EJB项目 此源码包 包括local本地调用及remote远程调用 文档说明在http://blog.csdn.net/heardy/article/details/6906225
- 掌握EJB的接口和注解,例如`@Remote`、`@Local`、`@Stateless`、`@Stateful`、`@MessageDriven`等。 - 学习如何配置和部署EJB组件到应用服务器,如WildFly、GlassFish等。 - 熟悉JNDI(Java Naming and Directory ...
主要有Home接口(创建和查找bean实例)、Remote接口(业务方法)和Local接口(仅限于同一应用内的通信)。 5. **事务管理**:EJB支持事务属性,如Required、RequiresNew、Mandatory、NotSupported、Supports和Never...
- Session Bean的Remote接口与Home接口适用于远程访问,Local接口与Local Home接口则适用于同一应用内部访问。 5. EJB 3.0之后的简化: - 从EJB 3.0开始,引入注解替代XML配置,使得EJB更易于使用。 - 注解如`@...
- 本地接口调用(Local Interface Invocation):当客户端和EJB在同一JVM内时,可以使用本地接口,效率更高。 - 容器管理的依赖注入(Container-Managed Dependency Injection):EJB容器负责将依赖项注入bean,如...
- **Remote接口**:EJB对象实现的接口,复制Bean的公共业务方法,客户端通过此接口与EJB交互。 - **Home对象**:提供EJB对象的生成、查找和删除功能,实现EJB对象的工厂模式。 - **Local接口**:为提高效率,提供了...
在 EJB 架构中,客户端与 EJB 组件的交互通常是通过 Home 接口或 Local Home 接口完成的,而实际的业务逻辑由 Bean 类处理,这就体现了委派模式的应用。 #### 三、EJB类型 EJB 主要有三种类型: - **SessionBean**...
- `javax.ejb.EJB`、`javax.ejb.Local`和`javax.ejb.Remote`等注解:用于标记bean的接口,指定其作用范围和远程访问方式。 - `javax.ejb.TimerService`:提供了定时任务的管理,可以在EJB中创建和管理定时器。 描述...
例如,@Remote和@Local接口定义了客户端如何与Bean通信,@Stateless、@Stateful、@Entity和@MessageDriven注解用于标记不同的Bean类型。 5. **EJB的事务管理** EJB支持四种事务属性:NotSupported、Supports、...