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

一个简单的EJB例子

    博客分类:
  • EJB
阅读更多
开发一个简单的EJB

一:EJB开发基本上都遵循一个过程,从总体上说,可以分成 五个步骤:

.EJB程序代码编写  
.EJB程序代码编译
.EJB部署描述文件编写  
.打包
.编译生成容器代码

二:简单介绍 EJB代码编写
HelloWorld EJB程序代码包括的接口和类名如下:

HelloHome 主接口 继承  javax.ejb.EJBHome 
HelloHome.java 文件名
功能:定义创建方法 
Hello 远程接口  继承  javax.ejb.EJBObject 
Hello.java 文件名
功能:定义业务逻辑方法 

HelloBean Bean   类 继承  javax.ejb.SessionBean   HelloBean.java 文件名
功能:实现业务逻辑 
HelloClient   客户端类  HelloClient.java 文件名
功能:测试程序

三:代码编写源码

<1>:HelloHome.java

package com.aaa.cjh;   
public interface HelloHome extends javax.ejb.EJBHome {   
    Hello  create()throws java.rmi.RemoteException,   
    javax.ejb.CreateException;   
}  

<2>:Hello.java

package com.aaa.cjh;   
  
public interface Hello extends javax.ejb.EJBObject{   
    public String hello()throws java.rmi.RemoteException;   
    public String helloOne()throws java.rmi.RemoteException;   
}   

<3>:HelloBean.java

package com.aaa.cjh;   
  
import javax.ejb.SessionContext;   
  
import org.apache.log4j.Logger;   
  
public class HelloBean implements javax.ejb.SessionBean {   
  
Logger log = Logger.getLogger(HelloBean.class);   
    
    private SessionContext ctx;   
       
    public void ejbCreate(){   
     log.debug("ejbCreate()");   
    }   
    public void ejbRemove(){   
     log.debug("ejbRemove()");   
    }   
    public void ejbActivate(){   
     log.debug("ejbActivate()");   
    }   
    public void ejbPassivate(){   
     log.debug("ejbPassivate()");   
    }   
    public void setSessionContext(javax.ejb.SessionContext ctx){   
        this.ctx =ctx;   
    }   
    public String hello(){   
     log.debug("hello()");   
        return "Hello,-----------------World!";   
    }   
       
    public String helloOne(){   
     log.debug("helloOne()");   
        return "helloOne,-----------------World!";   
    }   
}   

  <4>:HelloClient.java

package com.aaa.cjh;   
import java.util.Properties;   
  
import javax.naming.Context;   
import javax.naming.InitialContext;   
import javax.rmi.PortableRemoteObject;   
  
public class Test {   
  
/**  
  * @param args  
  */  
public static void main(String[] args) {   
  
  Properties prop = new Properties();   
        prop.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");   
        prop.put(Context.PROVIDER_URL, "t3://localhost:端口号");   
        prop.put(Context.SECURITY_PRINCIPAL, "weblogic用户名");   
        prop.put(Context.SECURITY_CREDENTIALS, "weblogic密码");   
           
        Context context = null;   
        try {   
         context = new InitialContext(prop);   
         HelloHome home = (HelloHome) PortableRemoteObject.narrow(context.lookup("HelloBean"),HelloHome.class);   
            Hello hello = home.create();   
            String docc=hello.hello();   
            String doccc=hello.helloOne();   
            System.out.println("完成");   
            System.out.println(docc);   
            System.out.println(doccc);   
            context.close();   
        } catch(Exception ex) {   
         ex.printStackTrace();   
        }   
  
}   
  
}   

四:EJB部署文件编写

<1>:ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">  
<ejb-jar>  
  <enterprise-beans>  
    <session>  
      <display-name>HelloBean</display-name>  
      <ejb-name>HelloBean</ejb-name>  
      <home>com.aaa.cjh.HelloHome</home>  
      <remote>com.aaa.cjh.Hello</remote>  
      <ejb-class>com.aaa.cjh.HelloBean</ejb-class>  
      <session-type>Stateless</session-type>  
      <transaction-type>Container</transaction-type>  
    </session>  
  </enterprise-beans>  
  <assembly-descriptor>  
    <container-transaction>  
      <method>  
        <ejb-name>HelloBean</ejb-name>  
        <method-name>*</method-name>  
      </method>  
      <trans-attribute>Required</trans-attribute>  
    </container-transaction>  
  </assembly-descriptor>  
</ejb-jar>  


<2>:weblogic-ejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">  
<weblogic-ejb-jar>  
  <weblogic-enterprise-bean>  
    <ejb-name>HelloBean</ejb-name>  
    <jndi-name>HelloBean</jndi-name>  
  </weblogic-enterprise-bean>  
</weblogic-ejb-jar>  

<3>:MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.5.0_04 (Sun Microsystems Inc.)

五:打包  pkg.bat 文件

@echo off
set PATH=D:\Program Files\Java\jdk1.5.0_04\bin;%PATH%

del HelloBean.jar
jar -cvf HelloBean.jar .

六:部署EJB 该实例在weblogic中部署EJB的jar包

以上操作完成后,执行HelloClient.java内进行调用测试。
分享到:
评论

相关推荐

    一个ejb学习时的简单例子

    Enterprise JavaBeans...总的来说,这个ejb学习的例子是一个很好的起点,它涵盖了EJB的核心概念和实际应用。通过分析和运行这个例子,你可以逐步熟悉并掌握EJB技术,为构建更复杂的Java EE应用程序打下坚实的基础。

    第一个EJB简单例子

    Enterprise JavaBeans(EJB)是Java平台上...通过这个简单的EJB例子,你可以学习到如何从头开始创建一个基本的EJB组件,了解其工作原理和在实际项目中的应用。这将帮助你更好地理解和掌握Java企业级开发的核心技术。

    简单EJB3例子

    这个"简单EJB3例子"将展示如何使用EJB3来创建一个简单的实体Bean(Entity Bean),这是EJB中负责持久化数据的部分。 首先,了解EJB3中的核心概念: 1. **实体Bean(Entity Bean)**:代表业务对象,通常与数据库中...

    Java EJB简单例子.rar

    Java EJB简单例子,这是HelloWorldBean的Home接口,它是EJB对象的生成库,无状态会话(将在下一个实例中具体讲解)Bean,这个接口是客户端与EJB对象相互作用的中间途径,通过Client触发调用Bean方法:  try {  //...

    EJB简单例子

    在本“EJB简单例子”中,我们将探讨EJB的基本概念、类型以及如何创建和运行一个简单的EJB应用。 1. **EJB组件类型** - **会话Bean(Session Beans)**:代表客户端的临时会话,提供业务逻辑服务。分为无状态会话...

    EJB例子

    4. **嵌入式EJB(Embedded EJB)**:这是Java EE 6引入的一个新概念,它允许在Java SE应用程序中使用EJB,简化了小型企业级服务的开发。嵌入式EJB可以在非Java EE容器中运行,如Java SE应用或Swing应用,无需部署到...

    ejb简单例子

    ejb简单例子

    EJB3入门例子

    4. **简化会话bean(Simplified Session Beans)**:EJB3的无状态会话bean(`@Stateless`)和有状态会话bean(`@Stateful`)更加易用,不再需要接口和Home接口,只需一个实现了业务逻辑的类即可。 5. **实体bean的...

    EJB_TEST自己编写的EJB例子

    在EJB_TEST中,我们看到的是作者自编的一个EJB实例,这通常涉及到创建、部署以及运行EJB组件,以便展示其功能和工作原理。 **EJB的组成部分**: 1. **实体Bean (Entity Bean)**:代表业务数据,通常映射到数据库中...

    EJB3.0完整代码例子

    EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了重大改进,引入了许多简化开发的新特性,使得Java企业级开发变得更加易用和高效。 EJB3.0的核心特点包括: 1. **注解驱动(Annotation-based)**:在EJB...

    jasperreports ejbql例子

    例如,一个简单的EJBQL查询可能是: ```java String ejbql = "SELECT entity FROM Entity entity WHERE entity.someProperty = :value"; ``` 在这个示例中,`Entity`是我们的实体类,`someProperty`是该类的一个...

    EJB例子源码自己写的

    会话Bean可以是无状态的,即每个客户端请求都会创建一个新的Bean实例,或者有状态的,其中每个客户端会话都对应一个特定的Bean实例,保持了客户端的上下文信息。 2. **实体Bean(Entity Beans)**:实体Bean映射到...

    一个简单的EJB

    在"一个简单的EJB"项目中,我们可以看到一个基础的EJB实现,通常这样的例子会展示如何创建一个简单的EJB组件,以及如何在客户端调用这个组件的方法,比如显示一个"Hello, World!"信息。这对于初学者来说,是一个很好...

    jboss 测试EJB 的例子

    5. **客户端调用**:ejb_client可能是一个简单的Java客户端程序,使用EJB的远程接口来调用服务端的EJB方法。JNDI(Java Naming and Directory Interface)用于查找并绑定EJB的引用。 6. **readme.txt**:这个文件...

    EJB项目例子

    在这个"HelloEJBS"项目中,我们将深入探讨EJB的基本概念、组件类型以及如何创建和部署一个简单的EJB应用。 1. **EJB基础** - **EJB组件**: EJB主要包括三种类型的组件:会话Bean(Session Beans)、实体Bean...

    基于JSF+EJB和EJB+Struct的开发例子

    这个开发例子展示了如何将它们结合使用,以创建一个简单的内容管理系统,该系统能够实现新闻的编辑、修改和删除功能。 【JSF(Java Server Faces)】 JSF是一种Java标准的用户界面组件模型,用于构建服务器端的Web...

    EJB Dev 1: EJB入门例子

    为了运行这个EJB例子,你需要一个支持EJB的Java EE服务器,如GlassFish、WildFly或TomEE。部署EJB应用到服务器后,客户端代码可以通过JNDI查找找到并调用Bean的方法。在开发过程中,IDE如Eclipse或IntelliJ IDEA提供...

    ejb3加数据库的简单例子

    在本文中,我们将深入探讨如何在EJB3环境下使用数据库,以一个简单的例子来引导初学者。EJB(Enterprise JavaBeans)3.0是Java EE(企业版)平台的一部分,提供了一种标准的方法来开发分布式、事务处理和持久化的...

    ejb原理详细说明,一个很容易理解的例子

    本文将深入探讨EJB的工作原理,并通过一个简单的示例帮助读者更好地理解。 #### EJB的基本概念 EJB主要分为三类:会话Bean(Session Bean)、实体Bean(Entity Bean)以及消息驱动Bean(Message-Driven Bean)。...

    EJB中JNDI的使用源码例子

    下面是一个简单的JNDI查找EJB的步骤: 1. 创建`InitialContext`:这是JNDI操作的第一步,通常在客户端或EJB内部进行。 ```java Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, ...

Global site tag (gtag.js) - Google Analytics