首先,我们看一下下面这张图片,了解一下通过远程调用接口的过程,从而知道远程调用接口和本地调用的区别,从而能够更好的 根据不同的情况而不同的方式调用EJB。
前面我们已经说了怎么开发远程调用的无状态的会话bean,所以现在我们就讲一下本地接口的无状态bean的开发吧。首先我们可以直接套用前面的例子,稍微做一下修改,让大家在了解开发本地调用接口的同时能够更好的发现他们之间的区别。
(1)当然,一开始我们就应该先新建一个java项目,然后我们新建一个本地接口,继承前面的远程接口HelloWorld.java的方法。让不管是本地接口调用或者是远程接口调用,其效果保持一致。
package com.ejb;
public interface HelloWorldLocal extends HelloWorld{
}
(2)新建一个EJB。
package com.ejb.impl;
import javax.ejb.Local;
import javax.ejb.Stateless;
import com.ejb.HelloWorldLocal;
import com.ejb.Other;
@Stateless //表示无状态会话 , 一定要记得这两个注解
@Local(HelloWorldLocal.class)//标识本地接口,默认也是为本地接口,括号中说明的是此时实现的是哪个接口
public class HelloWorldBean implements HelloWorldLocal {
@Override
public String sayHello(String name) {
return name + "说:Hello,世界!" ;
}
}
3)新建一个web项目EJB_HelloWorldClient,然后新建一个jsp文件。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="javax.naming.*, com.ejb.*" %>
<%
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本地客户端调用</title>
</head>
<body>
<%
try {
//在new这个工厂的时候,他会自动寻找jndi.properties
InitialContext ctx = new InitialContext();
HelloWorldLocal helloWorld = (HelloWorldLocal) ctx.lookup("HelloWorldBean/local");//调用本地接口
out.println(helloWorld.sayHello("本地人"));
} catch (NamingException e) {
e.printStackTrace();
}
%>
</body>
</html>
4)此时因为项目没有包含那些接口,肯定会报错,所以需要把之前的java项目引入。
5)然后两个项目都部署到同一个jboss中。然后在浏览器中访问。
本地无状态会话Bean开发就是这么简单。
- 大小: 133.2 KB
- 大小: 53.1 KB
- 大小: 7.4 KB
分享到:
相关推荐
在本节讲解中,我们将深入探讨EJB3(Enterprise JavaBeans 3)中关于开发具有本地接口的无状态会话bean。无状态bean是EJB3中的一个关键组件,它们通常用于执行短暂、非持久化的业务逻辑,不维护任何会话状态。与有...
在本文中,我们将深入探讨如何在WebLogic环境中部署EJB 2.0,特别是实现本地接口的Session Bean。 EJB 2.0是Java EE早期版本中的组件模型,用于构建可复用、分布式的企业级服务。它定义了三种主要类型的Bean:...
总结,EJB3.0无状态SessionBean的例子展示了如何利用注解简化开发流程,以及如何通过本地和远程接口进行组件间的通信。理解并掌握这些概念对于构建可扩展、健壮的企业级Java应用至关重要。通过学习这个示例,开发者...
**ejb3.0 第2,3讲 - 开发第一个无状态会话bean和客户端** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是用于构建可扩展、安全和事务处理的服务器端应用程序的核心组件。EJB 3.0是一个重要的版本,它极...
3. 注解配置:使用注解如`@Remote`或`@Local`定义远程或本地接口,`@EJB`注解注入其他依赖的Bean。 五、部署和测试 1. 配置Jboss:在Jboss的部署目录下,添加EJB JAR文件或包含EJB的WAR/EAR文件。 2. 远程调用:...
- **接口文件**:实体Bean拥有对外接口(远程接口`RemoteInterface`和本地接口`LocalInterface`)以及Home接口。Home接口提供了创建、查找和删除实体Bean实例的方法。 4. **实体Bean示例**:假设有一个名为`...
总结,EJB2 Session Bean是Java企业级开发中的重要组成部分,它提供了一种组织和执行业务逻辑的方法,支持本地和远程调用,具有完善的事务管理和生命周期管理机制。通过EJBClient,客户端可以方便地与Session Bean...
7. **远程接口和本地接口**:实体Bean可以提供远程接口供远程客户端调用,也可以提供本地接口供在同一应用内的其他组件调用。 8. **容器服务**:EJB容器提供诸如并发控制、持久化、事务、安全性和容错等服务,...
- EJB 2.x:引入了本地接口的概念,并改进了安全性、事务管理和持久性支持。 - EJB 3.0(JavaEE5的一部分):简化了编程模型,引入了注解驱动的配置和更简单的依赖注入机制,使得开发变得更加简单。 - EJB 3.1...
它提供了开发Java Web应用程序用户界面的标准编程接口,拥有一套丰富可扩展的UI组件库,并采用事件驱动模型,使得Web应用程序的开发更为高效。JSF的核心是基于组件的开发方法,允许开发者通过拖放组件来设计用户界面...
Session Bean可以是无状态的(Stateless Session Bean),每个客户端请求都被视为独立,或者有状态的(Stateful Session Bean),可以记住客户端的会话信息。 2. **MyEclipse开发工具**: MyEclipse是一款强大的...
实体Bean由本地接口、远程接口、bean类、主键类和配置描述器组成。本地接口扩展了EJBHome接口,提供create、remove、finder和home等方法。create方法触发ejbCreate,对应数据插入;remove方法对应数据删除;finder...
在开发无状态会话Bean时,需定义其接口和Bean类。接口分为远程接口(Remote interface)和本地接口(Local interface),前者用于跨容器调用,后者仅限于同一容器内部调用,提供更好的性能。Bean类包含具体的业务...
- 当开发一个只有Local接口的无状态会话Bean时,需要使用`@Local`注解声明接口是本地接口。 - 当开发一个只有Remote接口的无状态会话Bean时,需要使用`@Remote`注解声明接口是远程接口。 - 如果既不使用`@Local`...
#### 三、实战EJB之二:开发会话Bean(无状态会话Bean) **什么是无状态SessionBean?** 无状态会话Bean是一种EJB组件类型,它不保留客户端之间的任何状态信息。每次客户端请求都会创建一个新的实例,这意味着每个...
在开始编写无状态的SessionBean之前,首先需要确保开发环境已经正确配置。以下是所需的主要组件: 1. **Eclipse**:版本3.4.2,推荐使用针对Java EE开发者的Eclipse版本。 2. **JBoss**:版本5.0.1,可以从官方网站...
它们由本地接口、远程接口、bean类、主键类和配置描述器组成。实体bean可以是CMP(Container-Managed Persistence)或BMP(Bean-Managed Persistence),前者由容器负责数据持久化,简化开发,后者则需要开发者自己...