远程接口需要与EJB应用建立Socket连接,并传输数据进行交互,而
本地接口与EJB应用之间的则直接在内存中进行交互
。因此,比本地接口占用更多的系统资源。
当客户端与EJB应用在同一个JVM内才能调用本地接口。
通俗的说,客户端与EJB应用发布在同一个JBoss中。
package com.taoistwar.ejb;
public interface HelloWorld {
public String sayHello(String name);
}
package com.taoistwar.ejb.impl;
import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;
import com.taoistwar.ejb.HelloWorld;
@Stateless
@Local(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {
@Override
public String sayHello(String name) {
return name + "说:你好世界!";
}
}
客户端调用要在同一个JVM内,因此,用一个WEB项目的jsp文件进行测试。
<%@page language="java" contentType="text/html; charset=utf-8"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.NamingException"%>
<%@page import="com.taoistwar.ejb.HelloWorld"%>
<%
try {
InitialContext ic = new InitialContext();
HelloWorld hw = (HelloWorld) ic.lookup("HelloWorldBean/local");
String message = hw.sayHello("TaoistWar");
out.println(message);
} catch (NamingException e) {
e.printStackTrace();
}
%>
远程接口与本地接口的代码区别
在于注解的不同
,EJB窗器会根据不同的注解,使用不同的运行方式。
注: @Remot(HelloWorld.class)和@Local(HelloWorld.class)可以同时使用。
分享到:
相关推荐
会话Bean有两类:无状态会话Bean(Stateless Session Beans)和有状态会话Bean(Stateful Session Beans)。 1. 无状态会话Bean:适用于一次性的、与特定客户上下文无关的操作,如计算或查询。 2. 有状态会话Bean:...
在本节讲解中,我们将深入探讨EJB3(Enterprise JavaBeans 3)中关于开发具有本地接口的无状态会话bean。无状态bean是EJB3中的一个关键组件,它们通常用于执行短暂、非持久化的业务逻辑,不维护任何会话状态。与有...
**ejb3.0 第2,3讲 - 开发第一个无状态会话bean和客户端** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是用于构建可扩展、安全和事务处理的服务器端应用程序的核心组件。EJB 3.0是一个重要的版本,它极...
总结,EJB3.0无状态SessionBean的例子展示了如何利用注解简化开发流程,以及如何通过本地和远程接口进行组件间的通信。理解并掌握这些概念对于构建可扩展、健壮的企业级Java应用至关重要。通过学习这个示例,开发者...
- **会话Bean (Session Bean)**:分为有状态会话Bean和无状态会话Bean,主要用于封装业务逻辑。 - **实体Bean (Entity Bean)**:在EJB 2.x中用于持久化数据到数据库,但在EJB 3.0中已经被JPA(Java Persistence API...
它定义了三种主要类型的Bean:Stateless Session Beans(无状态会话bean)、Stateful Session Beans(有状态会话bean)和Message Driven Beans(消息驱动bean)。我们关注的是Session Bean,它们通常代表业务逻辑,...
下面将详细阐述EJB的基础知识,主要涉及无状态会话Bean、有状态会话Bean以及实体Bean。 1. 无状态会话Bean: 无状态会话Bean不保存与客户端交互的任何特定状态,这意味着它们不会在多个调用之间保持信息。这使得无...
Weblogic EJB 学习笔记主要涵盖了EJB(Enterprise JavaBeans)的基础知识,包括无状态会话bean、有状态会话bean和实体bean这三种主要的EJB类型,以及EJB在Weblogic服务器中的配置和事务管理。 1. **无状态会话bean*...
在开发无状态会话Bean时,需定义其接口和Bean类。接口分为远程接口(Remote interface)和本地接口(Local interface),前者用于跨容器调用,后者仅限于同一容器内部调用,提供更好的性能。Bean类包含具体的业务...
- **接口文件**:实体Bean拥有对外接口(远程接口`RemoteInterface`和本地接口`LocalInterface`)以及Home接口。Home接口提供了创建、查找和删除实体Bean实例的方法。 4. **实体Bean示例**:假设有一个名为`...
#### 三、实战EJB之二:开发会话Bean(无状态会话Bean) **什么是无状态SessionBean?** 无状态会话Bean是一种EJB组件类型,它不保留客户端之间的任何状态信息。每次客户端请求都会创建一个新的实例,这意味着每个...
- 当开发一个只有Local接口的无状态会话Bean时,需要使用`@Local`注解声明接口是本地接口。 - 当开发一个只有Remote接口的无状态会话Bean时,需要使用`@Remote`注解声明接口是远程接口。 - 如果既不使用`@Local`...
无状态会话Bean通常用于执行独立的业务操作,而有状态会话Bean则保留了客户端交互的上下文信息。 在Java EE中,实现远程接口意味着会话Bean可以通过网络进行访问。这涉及到两个主要概念:本地接口和远程接口。本地...
无状态会话bean不维护会话信息,而有状态会话bean可以保存客户端会话的上下文信息。 5. **Message-driven Beans**:消息驱动bean用于响应来自消息队列的消息。它们在后台运行,处理异步通信,是解耦系统组件的好...
3. **无状态会话Bean(Stateless Session Beans)**:EJB3.0简化了无状态会话Bean的定义和使用,通过注解可以直接声明方法为远程或本地调用接口。此外,无状态会话Bean的生命周期管理也变得更加自动化。 4. **有...
根据其行为,会话bean可以分为无状态会话bean(Stateless Session Beans)和有状态会话bean(Stateful Session Beans)。无状态bean对每个请求都创建新的实例,不保存任何客户端状态,适合执行独立的操作。有状态...
创建会话bean 在新创建的EJB模块中,右键选择`New` > `EJB Component` > `Session Bean`。在向导中,为bean命名,选择bean的接口类型(无状态或有状态),并提供接口和实现类的名字。点击`Finish`。 ### 5. 编写...
- 实现无状态Session Bean时,不需要实现 javax.ejb.SessionSynchronization 接口,因为它们没有会话状态需要同步。 2. **有状态Session Bean** - 有状态Session Bean存储了客户端的上下文信息,允许在多个方法...