`
javaEEdevelop
  • 浏览: 876147 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

开发具有本地接口和远程接口的无状态bean

 
阅读更多

开发步骤

1.开发服务端

 1.1 开发HelloWorld和HelloWorldLocal接口,在开发HelloWorldBean实现类

2.开发客户端

 2.1 开发EJBClient2的java客户端项目和EJBClient的web项目

3.把helloworld.jar服务和EJBClient.war都部署在JBoss容器里,helloworld.jar打包时只需要选定HelloWorld、HelloWorldLocal、HelloWorldBean这三个类导出即可;

HelloWorld.java //远程接口类

package cn.cmcc.ejb3;

 

public interface HelloWorld {

 

public String say(String name);

}

 

 

HelloWorldLocal.java //本地接口类,现在是模拟,所以就一样的

package cn.cmcc.ejb3;

 

public interface HelloWorldLocal extends HelloWorld {

 

}

 

 

HelloWorldBean.java //接口实现类

package cn.cmcc.ejb3.impl;

 

import javax.ejb.Local;

import javax.ejb.Remote;

import javax.ejb.Stateless;

 

 

import cn.cmcc.ejb3.HelloWorld;

import cn.cmcc.ejb3.HelloWorldLocal;

 

@Stateless //申明是一个无状态bean

@Remote(HelloWorld.class)  //申明是一个远程接口,不写默认是本地接口

@Local(HelloWorldLocal.class)  //申明是一个本地接口

public class HelloWorldBean implements HelloWorld,HelloWorldLocal {

 

@Override

public String say(String name) {

return name+":说,您好";

}

 

}

 

 

EJBClient2.java  //这个是远程接口,因为这个项目和helloworld.jar不在同一个应用服务器中,所以调用远程接口

package cn.cmcc.test;

 

import javax.naming.InitialContext;

import javax.naming.NamingException;

 

import cn.cmcc.ejb3.HelloWorld;

 

public class EJBClient2 {

 

public static void main(String[] args) {

try {

//默认是去classpath下寻找jndi.properties文件

InitialContext ctx = new InitialContext();

HelloWorld helloworld = (HelloWorld) ctx

.lookup("HelloWorldBean/remote");

System.out.println(helloworld.say("佛山"));

} catch (NamingException e) {

System.out.println(e.getMessage());

}

}

}

 

 

EJBClient.war是一个web项目,和服务端部署在同一个JBOSS应用服务器中,就已个简单的页面

 

 

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 

<%@page import="javax.naming.*"%>

<%@page import="cn.cmcc.ejb3.*"%><html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<%

try {

/*

当web客户端和EJB服务部署在同一个应用服务器中,因为应用服务器启动时会把JNDI驱动类等上下文信息添加进系统属性

当不再同一个应用服务器中,需要指定JNDI驱动类等上下文信息

因为现在是helloworld.jar服务和EJBClient.war都部署在JBoss容器里,所以不需要指定JNDI驱动类等上下文信息

*/

InitialContext ctx = new InitialContext();

HelloWorldLocal helloworld = (HelloWorldLocal) ctx

.lookup("HelloWorldBean/local");

out.println(helloworld.say("佛山"));

} catch (NamingException e) {

out.println(e.getMessage());

}

%>

</body>

</html>

 

 

分享到:
评论

相关推荐

    ejb3 第6讲--开发具有本地接口的无状态bean

    在本节讲解中,我们将深入...综上所述,了解和掌握EJB3中无状态bean的开发,特别是本地接口的应用,对于开发高效的企业级Java应用至关重要。结合源码实践和合适的开发工具,可以帮助开发者更好地理解和运用这些概念。

    EJB3.0无状态SessionBean例子

    总结,EJB3.0无状态SessionBean的例子展示了如何利用注解简化开发流程,以及如何通过本地和远程接口进行组件间的通信。理解并掌握这些概念对于构建可扩展、健壮的企业级Java应用至关重要。通过学习这个示例,开发者...

    Bean开发实例之三实体Bean开发实例

    - **接口文件**:实体Bean拥有对外接口(远程接口`RemoteInterface`和本地接口`LocalInterface`)以及Home接口。Home接口提供了创建、查找和删除实体Bean实例的方法。 4. **实体Bean示例**:假设有一个名为`...

    weblogic部署EJB2.0 实现本地接口的SessionBean

    WebLogic是Oracle公司的一款企业级...总之,WebLogic部署EJB 2.0涉及编写Session Bean、本地接口、配置部署描述符和实际部署到服务器等多个步骤。理解和掌握这些概念对于开发和维护基于Java EE的企业级应用至关重要。

    ejb3.0 第2,3讲-开发第一个无状态会话bean和客户端

    **ejb3.0 第2,3讲 - 开发第一个无状态会话bean和客户端** 在Java企业版(Java EE)中,Enterprise JavaBeans(EJB)是用于构建可扩展、安全和事务处理的服务器端应用程序的核心组件。EJB 3.0是一个重要的版本,它极...

    Jboss下开发ejb应用之一会话bean的应用

    3. 注解配置:使用注解如`@Remote`或`@Local`定义远程或本地接口,`@EJB`注解注入其他依赖的Bean。 五、部署和测试 1. 配置Jboss:在Jboss的部署目录下,添加EJB JAR文件或包含EJB的WAR/EAR文件。 2. 远程调用:...

    EJB2.0 Entity bean(PDF)

    7. **远程接口和本地接口**:实体Bean可以提供远程接口供远程客户端调用,也可以提供本地接口供在同一应用内的其他组件调用。 8. **容器服务**:EJB容器提供诸如并发控制、持久化、事务、安全性和容错等服务,...

    EJB2 SessionBean

    总结,EJB2 Session Bean是Java企业级开发中的重要组成部分,它提供了一种组织和执行业务逻辑的方法,支持本地和远程调用,具有完善的事务管理和生命周期管理机制。通过EJBClient,客户端可以方便地与Session Bean...

    ejb入门录像 sessionBean

    Session Bean可以提供远程接口供远程客户端调用,也可以提供本地接口供同一应用内的其他组件调用。这两种接口的使用场景和配置会在录像中进行演示。 8. **实战示例**: 视频可能包含一个实际的例子,例如创建一个...

    Java_EE_Udemy19:会话Bean实现远程接口

    2. **实现会话Bean**:创建一个实现了远程接口的类,并使用`@Stateless`(对于无状态会话Bean)或`@Stateful`(对于有状态会话Bean)注解标记它。同时,这个类还需要实现远程接口。 ```java import javax.ejb....

    EJB的基础知识资料

    实体Bean由本地接口、远程接口、bean类、主键类和配置描述器组成。本地接口扩展了EJBHome接口,提供create、remove、finder和home等方法。create方法触发ejbCreate,对应数据插入;remove方法对应数据删除;finder...

    EJB3.0简介

    根据其对会话状态的处理方式,会话Bean主要分为两种类型:有状态会话Bean(Stateful Session Bean)和无状态会话Bean(Stateless Session Bean)。 ##### 无状态会话Bean(Stateless Session Bean) 无状态会话...

    Weblogic EJB 学习笔记

    它们由本地接口、远程接口、bean类、主键类和配置描述器组成。实体bean可以是CMP(Container-Managed Persistence)或BMP(Bean-Managed Persistence),前者由容器负责数据持久化,简化开发,后者则需要开发者自己...

    Java EJB模型模拟完整代码.rar

    分为无状态会话bean和有状态会话bean。无状态会话bean不维护会话信息,而有状态会话bean可以保存客户端会话的上下文信息。 5. **Message-driven Beans**:消息驱动bean用于响应来自消息队列的消息。它们在后台运行...

    实战EJB 实战EJB 实战EJB

    1. **定义接口**:为EJB定义本地和远程接口。 2. **实现EJB类**:实现接口中定义的方法,包括业务逻辑的实现。 3. **配置部署描述符**:使用`ejb-jar.xml`文件指定EJB的部署属性。 **部署到应用服务器** 1. **打包...

    EJB3.1技术培训

    - 当开发一个只有Remote接口的无状态会话Bean时,需要使用`@Remote`注解声明接口是远程接口。 - 如果既不使用`@Local`也不使用`@Remote`注解,容器会默认将接口视为Local接口。 - 示例代码: ```java @Local ...

    eclipse + JBoss 5 + EJB3开发指南

    在开始编写无状态的SessionBean之前,首先需要确保开发环境已经正确配置。以下是所需的主要组件: 1. **Eclipse**:版本3.4.2,推荐使用针对Java EE开发者的Eclipse版本。 2. **JBoss**:版本5.0.1,可以从官方网站...

Global site tag (gtag.js) - Google Analytics