`
jinchun1223
  • 浏览: 259498 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

ejb开发实例

    博客分类:
  • web
阅读更多

 刚开始学习ejb,依据基本原理编写一个ejb小例子,有想学习ejb的欢迎大家一块学习指导!

my QQ

243067750

 


1 新建ejb项目
   1、Remote(或Local)接口

package com.terry.ejbsample;

import java.rmi.RemoteException;

import javax.ejb.EJBObject;

public interface Hello extends EJBObject {
 
 public String getHello(String s) throws RemoteException;//远程调用的接口方法


}


   2、Home(或LocalHome)接口

package com.terry.ejbsample;

import java.rmi.RemoteException;

import javax.ejb.CreateException;
import javax.ejb.EJBHome;

public interface HelloHome extends EJBHome {

 

 Hello create() throws RemoteException, CreateException;

 

}


   3、企业Bean ,具体的业务实现类

package com.terry.ejbsample;

import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

public class HelloBean implements SessionBean {


 public String getHello(String s) {     //具体的业务实现方法
  return s;
  
 }

 public void ejbCreate() throws CreateException {
  System.out.println("Bean created");
 }

 public void ejbRemove() {
 }

 public void ejbActivate() {
 }

 public void ejbPassivate() {
 }

 public void setSessionContext(SessionContext ctx) {
 }
}


编写配置文件(放在ejb项目的meta-inf文件夹下面)
ejb-jar.xml
<?xml version="1.0"?>

<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
                http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
 version="2.1">
 <enterprise-beans>
  <session>
   <ejb-name>HelloName</ejb-name>                                 //ejb名称
   <home>com.terry.ejbsample.HelloHome</home>           //ejb本地接口类
   <remote>com.terry.ejbsample.Hello</remote>               //ejb远程接口类
   <ejb-class>com.terry.ejbsample.HelloBean</ejb-class>   //ejb具体业务实现类

   <session-type>Stateful</session-type>
   <transaction-type>Container</transaction-type>
  </session>
 </enterprise-beans>
</ejb-jar>

配置文件jboss.xml
 
<?xml version="1.0"?>

<jboss>
  <enterprise-beans>
    <session>
        <ejb-name>HelloName</ejb-name>            //ejb名称

        <jndi-name>HelloHome</jndi-name>          //JNDI名称

    </session>
  </enterprise-beans>
</jboss>


打包ejb项目,使用myeclipse打包。生成ejb.jar


编写测试项目:


  新建web项目testEJB

   测试项目中加入jar。
     1 首先把ejb包加入。
原因是:

   
   
  在生成ejb后应该已经建立了本地接口和远程接口,在部署ejb时websphere或

其他ejb容器会根据这两个接口自动生成本地接口类和远程接口类。  
   
  所以你不用实现这两个接口类,但必须在开发客户端的时候将这两个接口的类

文件放到你的客户端工程中。  
   
  客户端申请本地接口时,web容器根据自己生成的本地接口类返回一个类实例

,本地接口类实现了本地接口。通过本地接口,你可以建立远程接口的实例,通

过本地接口的create方法,此时web容器会根据自己生成的远程接口类返回一个

类实例,远程接口类实现了远程接口。  
   
  而本地接口类和远程接口类的实例其实是存在于服务器中,你的客户端只是远

程调用这些类的商业方法


   2 把jboss下面的client里面的jar包全部引用到测试项目的lib下面。

 

 

 

 编写测试类

package com.lovo.servlet;
import java.rmi.RemoteException;

import javax.ejb.CreateException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

import com.terry.ejbsample.Hello;
import com.terry.ejbsample.HelloHome;

public class HelloClient {
 
 public static void main(String[] args)
   {

 
        try {
   java.util.Properties p = new

java.util.Properties();
   p.put(Context.INITIAL_CONTEXT_FACTORY,
      

"org.jnp.interfaces.NamingContextFactory");
   p.put(Context.URL_PKG_PREFIXES,

"jboss.naming:org.jnp.interfaces");
   p.put(Context.PROVIDER_URL, "localhost:1099");
   
   Context jndiContext = new InitialContext(p);
   Object ref = jndiContext.lookup("HelloHome");
   HelloHome home = (HelloHome)

PortableRemoteObject.narrow(ref, HelloHome.class);


   Hello hh = home.create();
   
   String  s = hh .getHello("springking你真棒");
     System.out.println("ejb " + s);
   
  } catch (ClassCastException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (RemoteException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (NamingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (CreateException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 

   }
}

 

 

分享到:
评论

相关推荐

    EJB的一个开发实例

    ### EJB 开发实例:学校管理系统 #### 一、引言 随着企业级应用程序的不断发展,EJB(Enterprise JavaBeans)作为一种重要的Java EE组件模型,为构建可伸缩且易于维护的企业级应用提供了强有力的支持。本文旨在通过...

    jsf+EJB开发实例

    **结合JSF与EJB开发实例** 1. **通信机制**:JSF通常通过Managed Beans调用EJB服务,Managed Beans作为两者的桥梁,接收前端请求并转发给EJB处理。 2. **数据展示**:JSF组件可以绑定到Managed Bean的属性,当EJB...

    EJB2.0 实例开发

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

    基于java的开发源码-EJB编程实例代码.zip

    基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于...

    EJB 3.0实例教程.pdf

    **企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建分布式...《EJB 3.0实例教程》这本书应该会详细解释这些概念,并通过实例帮助读者掌握EJB 3.0的实践应用。

    EJB3.0实例教程(PDF)

    **EJB3.0实例教程**是一份详细指导开发者如何使用Enterprise JavaBeans 3.0(EJB3.0)技术进行企业级应用开发的电子文档。EJB3.0是Java EE(Java Platform, Enterprise Edition)规范的一部分,旨在简化企业级组件的...

    电子书-EJB3.0实例教程

    EJB 3.0是其重要的一个版本,它在EJB 2.x的基础上进行了大幅度的简化,提升了开发效率,降低了学习曲线,使得Java EE应用开发更加易用。 EJB 3.0的核心改进包括以下几个方面: 1. **注解驱动**:在EJB 2.x中,...

    EJB3.0实例教程及源代码

    EJB 3.0是EJB规范的一个重要版本,它在简化API、提高开发效率和增强易用性方面做出了重大改进。 **EJB 3.0核心概念** 1. **实体Bean(Entity Bean)**:代表业务对象,通常与数据库中的记录对应。EJB 3.0引入了...

    ejb3实例源代码

    EJB(Enterprise JavaBeans)是Java企业级应用开发的核心组件之一,主要负责处理业务逻辑。EJB 3是其第三个主要版本,发布于2006年,它引入了许多重大改进,极大地简化了EJB的开发模式,降低了学习曲线,提高了开发...

    ejb3.0开发实例(java工程)

    在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之一就是大量使用注解(Annotation),减少了XML配置文件的使用。例如,@Stateless、@...

    中文最新EJB3.0实例教程下载

    在《中文最新EJB3.0实例教程》中,你将学习如何创建和部署EJB3.0组件,如何使用JPA进行数据持久化,以及如何利用依赖注入和事务管理构建可扩展和可靠的业务应用。教程中可能包含实际的项目案例,通过实践操作来加深...

    j2ee.ejb编程实例.rar

    总之,"j2ee.ejb编程实例.rar"是一个宝贵的资源,它将理论知识与实际操作相结合,是提升J2EE EJB开发技能的理想工具。无论你是初学者还是经验丰富的开发者,都能从中获益,进一步巩固和提升自己的Java EE开发能力。

    EJB全实例教程

    通过这个**EJB全实例教程**,学习者可以深入了解EJB的各个方面,并通过实际操作加深理解,从而更好地利用EJB开发高效、可靠的Java EE应用。同时,提供的CHM文件(1140772034247J2EE.chm)很可能是教程的电子版,包含...

    Java中的EJB编程实例代码

    内容有:简单的EJB、无状态SessionBean、有状态SessionBean、BMP位图实例、cmp实例、Message-Driven Bean、JNDI的使用、112各种EJB之间的调用、B-S结构EJB、 C-S结构EJB、UML建模与J2EE开发、RMI and RMI-...

    ejb\ejb3.0实例教程

    本教程将通过一系列实例,帮助你从零开始掌握EJB3.0的精髓,为后续的Java EE企业级开发打下坚实的基础。在实际操作中,你可以结合源代码分析每个示例的工作原理,加深对EJB3.0的理解。记得在实践中不断尝试,理论与...

    ejb调用详解

    本文将深入探讨如何在WebSphere环境中远程调用EJB组件,同时介绍ejb3.0版本的一些关键特性,以及 ejb 开发实例和相关框架。 **一、EJB 3.0简介** EJB 3.0是EJB规范的一个重大改革,引入了更加轻量级和简化的设计,...

    EJB3.0实例教程(源代码).rar )

    它可能涵盖了从基本概念到高级特性的实例,帮助读者深入理解并实践EJB 3.0开发。 **5. 子文件解析** - **mysql-ds.xml**:可能是数据库数据源的配置文件,用于连接EJB组件到MySQL数据库。 - **WSClient**:可能包含...

    EJB3.0实例教程源码

    总结来说,EJB 3.0实例教程中的多对多映射展示了如何利用JPA注解在Java EE环境中实现对象关系映射,简化了数据库操作,提高了开发效率。在实际项目中,这种映射方式有助于创建灵活、易于维护的代码结构,尤其对于...

Global site tag (gtag.js) - Google Analytics