`
sunbin
  • 浏览: 354301 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

EJB开发--2.0

    博客分类:
  • ejb
阅读更多

 

 

 

       接口或类名     类型  文件名              功能  

  ───────────────────────────────
  HelloHome  主接口    HelloHome.java  定义创建方法 

  Hello            远程接口 Hello.java           定义业务逻辑方法 
  HelloBean   Bean类   HelloBean.java  实现业务逻辑 
  HelloClient    客户端类    HelloClientjava  测试程序 
  ───────────────────────────────

目录结构

Java文件放在src下,src文件夹下建子目录META-INF.

META-INF含两个文件weblogic-ejb-jar.xmlejb-jar.xml

 

相关代码

1.编写主接口程序
  在文本编辑器中编辑HelloHome.java文件,并保存在C:\work\hello目录下,其代码为:

  //本接口需要引入的类或接口
  import java.rmi.RemoteException;
  import javax.ejb.CreateException;
  import javax.ejb.EJBHome;

  //定义主接口,必须继承EJBHome
  public interface HelloHome extends EJBHome {
   //定义EJB创建方法
   Hello create() throws CreateException, RemoteException;
  }

  2.编写远程接口程序
  在文本编辑器中编辑Hello.java文件,并保存在C:\work\hello目录下。Hello.java文件的代码为:

  //本接口需要引入的类或接口
  import javax.ejb.EJBObject;
  import java.rmi.RemoteException;

  //定义远程接口,必须继承EJBObject
  public interface Hello extends EJBObject {
   //定义业务逻辑方法
   public String sayHello()
   throws RemoteException;
  }

  3.编写Bean类实现程序
  在文件编辑器中编辑HelloBean.java文件,并保存在C:\work\hello目录下。HellloBean.java文件的代码为:

  //本类需要引入的类或接口
  import javax.ejb.CreateException;
  import javax.ejb.SessionBean;
  import javax.ejb.SessionContext;

  //实现业务逻辑,必须实现SessionBean接口
  public class HelloBean implements SessionBean {
   //这是个会话EJB,声明会话上下文
   private SessionContext ctx;
   //声明字符串
   private String words;
   //接口SessionBean中定义的方法,必须实现
   public void setSessionContext(SessionContext ctx) {
    this.ctx = ctx;
   }
   //接口SessionBean中定义的方法,必须实现
   public void ejbActivate() {
   }
   //接口SessionBean中定义的方法,必须实现
   public void ejbPassivate() {
   }
   //接口SessionBean中定义的方法,必须实现
   public void ejbRemove() {
   }
   //和主接口定义对应的方法,必须实现
   public void ejbCreate() throws CreateException {
    words = "Hello World";
   }
   //供客户端调用的业务逻辑方法,这里只简单的打印字符串,并把字符串返回到客户端
   public String sayHello()
   {
    System.out.println("I am in an EJB of Server ."+words);
    return words;
   }
  }

4.EJB部署文件编写

  部署文件是EJB的重要组成部分。简单地说,部署文件就是EJB的说明文件,这个文件由服务器容器使用,服务器根据部署文件的说明来管理EJB。
  EJB部署文件是标准的XML文件,必须遵守XML的语法规则。此外,还要遵守相关的DTD规则。
  部署文件到少有两个文件ejb-jar.xml和weblogic-ejb-jar.xml。前者为EJB自身的一些特征,如名称、组成等:后者是和EJB部署相关的描述。
  编写部署文件:
  (1)在文件编辑器中编辑ejb-jar.xml文件,并保存在C:\work\hello目录下。ejb-jar.xml文件的内容为:

 

<?xml version="1.0"?>

<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
<!--EJB说明文件-->
<ejb-jar>
<small-icon>images/green-cube.gif</small-icon>
<enterprise-beans>
<!--定义会话EJB-->
<session>
<small-icon>images/orange-cube.gif</small-icon>
<!--定义会话EJB名-->
<ejb-name>MyFirstEJB</ejb-name>
<!--定义会话EJB主接口名-->
<home>HelloHome</home>
<!--定义会话EJB远程接口名-->
<remote>Hello</remote>
<!--定义会话EJB实现类名-->
<ejb-class>HelloBean</ejb-class>
<!--定义会话EJB类型-->
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<!--定义会话EJB装配描述-->
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>MyFirstEJB</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>

  (2)在文件编辑器中编辑weblogic-ejb-jar.xml文件,并保存在C:\work\hello目录下。weblogic-ejb-jar.xml文件的内容为:

 

<?xml version="1.0"?>

<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
<!--EJB部署说明文件-->
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<!--EJB名-->
<ejb-name>MyFirstEJB</ejb-name>
<!--定义EJB最大缓冲池-->
<caching-descriptor>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
</caching-descriptor>
<!--定义EJB jndi名称-->
<jndi-name>HelloHome</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>

 

 

5.客户端测试程序代码编写

  在文本编辑器中编辑HelloClient.java文件,并保存在C:\work\hello目录下,其代码如下:

//本类需要引入的类或接口
import java.rmi.RemoteException;
import java.util.Properties;
import javax.ejb.CreateException;
import javax.ejb.RemoveException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

/**
* 这是EJB的客户端测试程序
*/

public class HelloClient {

private static final String JNDI_NAME = "HelloHome";

private String url;
private HelloHome home;

public HelloClient(String url)
throws NamingException
{

this.url = url;

home = lookupHome();
}

void test()
throws RemoteException,CreateException
{
Hello hello = (Hello) PortableRemoteObject.narrow(home.create(), Hello.class);
System.out.println("I am in client. "+hello.sayHello());
}


/**
* 运行这个实例:
* java HelloClient t3://localhost:7001
*/
public static void main(String[] args) throws Exception {

System.out.println("\n客户端程序测试开始...\n");

String url = "t3://localhost:7001";

// 解析命令行
if (args.length != 1) {
System.out.println("用法: java HelloClient t3://hostname:port");
return;
} else {
url = args[0];
}
HelloClient client = null;
try {
client = new HelloClient(url);
} catch (NamingException ne) {
System.exit(1);
}
try {
client.test();
} catch (Exception e) {
System.exit(1);
}
System.out.println("\n客户端程序测试结束...\n");
}


/**
* 查找 EJB 的主接口
*/
private HelloHome lookupHome()
throws NamingException
{
Context ctx = getInitialContext();
Object home = ctx.lookup(JNDI_NAME);
return (HelloHome) PortableRemoteObject.narrow(home, HelloHome.class);
}

/**
* 使用属性对象获取上下文
*/
private Context getInitialContext() throws NamingException {
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, url);
return new InitialContext(h);
}
}

 

6.如果用eclipse的话,直接将bin目录改名字为XXX.war文件。用weblogic部署

分享到:
评论

相关推荐

    Ejb2.0教程-java教程

    EJB 2.0 是EJB技术的一个里程碑,发布于2003年,引入了许多重要的改进和新特性,旨在简化开发过程并提高可维护性。 **1. EJB 架构概述** EJB 2.0 主要由三种类型的组件组成:Entity Beans(实体Bean)、Session ...

    EJB2.0开发.rar_EJB2.0 pdf_ejb_ejb 2_ejb2.0_websphere

    EJB 2.0是这一技术的一个重要版本,它在EJB 1.1的基础上进行了许多改进和扩展,以提高开发效率和系统的可维护性。本篇将深入探讨EJB 2.0的核心概念、设计模式以及在实际应用中的使用技巧。 1. **EJB组件模型** - *...

    ejb2.0与ejb3.0的区别

    通过上述对比,我们可以看出EJB 3.0相对于EJB 2.0做了大量的改进,特别是在简化开发流程和提高灵活性方面。这些变化使得EJB更加易于使用和集成,同时也保持了其作为企业级应用开发框架的核心价值。对于开发者而言,...

    EJB2.0 实例开发

    **EJB2.0 实例开发** EJB(Enterprise JavaBeans)是Java平台上的企业级应用组件模型,它为构建可扩展、安全且事务处理能力强的企业级应用提供了规范。EJB2.0作为其一个重要版本,引入了许多特性,如会话bean、实体...

    ejb2.0.rar_EJB2.0特性_ejb2.0

    在EJB2.0中,引入了一系列新特性和改进,以提升开发效率和系统性能。以下是关于EJB2.0特性的一些详细说明: 1. **Entity Beans 2.0**:EJB2.0中的实体Bean(Entity Bean)进行了重大更新,引入了CMP(容器管理持久...

    精通EJB2.0 书籍源码

    通过这些文件,我们可以看到一个完整的EJB2.0应用开发环境,包括服务器配置、数据库创建、bean的配置和测试等环节。学习并理解这些知识点,将有助于开发者深入掌握EJB2.0的核心技术和实践应用。

    图解eclipse+myelcipse开发EJB2.0

    在EJB开发之前,我们需要配置服务器,例如WebLogic 9.0。WebLogic是Oracle提供的一个成熟的Java应用服务器,能够处理EJB的部署和运行。配置WebLogic 9.0时,需要选择JDK5.0版本,因为这是EJB2.0所支持的JDK版本。与...

    ejb2.0开发

    以上就是EJB 2.0开发的基本知识点,它在Java EE体系中扮演着重要的角色,为大型企业级应用提供了稳定、可扩展的框架。然而,随着技术的发展,EJB 3.0及后续版本引入了更多简化开发的特性,比如注解驱动、依赖注入等...

    全面研读EJB2.0规范

    EJB2.0是其发展过程中的一个重要版本,它引入了许多关键特性,极大地提升了Java后端开发的能力和效率。在这个"全面研读EJB2.0规范"的学习资源中,我们将深入探讨EJB2.0的核心概念、设计模式以及实际应用。 ### EJB...

    EJB2.0

    后续版本EJB3.0引入了注解和简化API,极大地改善了开发体验。然而,理解EJB2.0对于理解EJB的历史演变和EJB3.0的设计决策至关重要。如果你想要深入学习EJB,文档中的内容将会涵盖这些关键知识点,帮助你构建坚实的EJB...

    EJB2.0一个完整的Helloworld

    开发EJB 2.0应用通常需要IDE支持,如Eclipse或NetBeans。开发完成后,将EJB打包到ejb-jar文件,然后放入一个EAR(Enterprise Archive)文件,包含ejb-jar、Web应用和其他相关资源。最后,将EAR部署到支持EJB 2.0的...

    EJB2.0 Entity bean(PDF) .zip_EJB2 enti_EJB2.0 P_ejb_ejb2 CMP sup

    EJB 2.0是EJB规范的一个重要版本,引入了多项关键改进和特性,旨在提升企业应用的开发效率和可维护性。 ### 1. EJB 2.0实体Bean(Entity Bean) 实体Bean代表了业务逻辑中的持久化数据对象,它们与数据库中的记录...

    ejb2.rar_ejb2_ejb2.0

    本教程将深入探讨EJB 2.0的核心概念、架构以及开发流程。 ### 1. EJB 2.0概述 EJB 2.0的核心目标是提供一种标准的、面向对象的方法来构建企业级应用,它定义了三个主要组件类型:会话bean(Session Beans)、实体...

    javapetstore-2.0-ea5

    通过分析和学习"javapetstore-2.0-ea5"项目,开发者可以掌握Java EE的关键技术和最佳实践,为未来的企业级开发打下坚实的基础。同时,也可以了解到早期Java技术的发展历程,对比现代的Java框架和工具,理解技术演进...

    ejb2.0 api文档快速开发

    下面将详细阐述EJB 2.0 API的关键知识点及其在开发中的应用。 1. EJB组件类型: - 会话bean(Session Beans):用于处理事务性和非持久性的业务逻辑,可以分为状态ful(有状态)和无状态会话bean。有状态会话bean...

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

    在本文中,我们将深入探讨如何在WebLogic环境中部署EJB 2.0,特别是实现本地接口的Session Bean。 EJB 2.0是Java EE早期版本中的组件模型,用于构建可复用、分布式的企业级服务。它定义了三种主要类型的Bean:...

    EJB3.0与EJB2.0的区别

    同时,EJB3.0保持了EJB2.0的核心功能,并在许多方面进行了优化,从而提升了开发效率和代码质量。因此,EJB3.0并非仅仅是表象上的简化,而是一次重要的进化,它在保留企业级特性的基础上,提供了更适合现代开发实践的...

    EJB2.0.pdf

    EJB 2.0是在早期版本基础上的重大更新,它引入了许多新特性来简化企业级应用的开发过程,并提高了应用程序的可移植性和可维护性。EJB 2.0主要包括以下三种类型的Bean: 1. **会话Bean**:用于实现业务逻辑。会话...

Global site tag (gtag.js) - Google Analytics