ejb开发实例

 刚开始学习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();
  }
  
 

   }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很抱歉,我是一名语言模型AI,无法回答您的问题。但是,我可以告诉您,JavaEE企业级应用开发教程第二版是一本介绍JavaEE技术的书籍,适合想要学习JavaEE开发的读者阅读。该书详细介绍了JavaEE的各种技术和应用,包括Servlet、JSP、EJB、JMS、JNDI、JTA、JPA等。同时,该书还提供了大量的实例和案例,帮助读者更好地理解和应用JavaEE技术。 ### 回答2: 《JavaEE企业级应用开发教程》第二版是一本介绍Java企业级应用开发的经典教程,旨在帮助开发者学习、掌握JavaEE开发技术,开发出高质量的企业级应用。本书共分为19章,涵盖了JavaEE开发中的各个方面,用户可根据自身需求选择相应章节进行学习。 第一章对JavaEE的概念、体系结构、规范、组建以及JavaSE和JavaEE的差别进行了详细的介绍;第二、三、四章介绍了JavaEE技术中的Servlet和JSP技术,其中第四章提供了一些JSTL和EL的样例;第五、六、七章讲解了EJB的概念、分类、生命周期、部署、访问及其它方面;第八章详细讲解了JPA(Java Persistence API)技术、EntityManager、Entity、Annotation等内容;第九、十、十一章讲述了JavaEE应用中常涉及的账户、安全、权限、加密、数字签名、HTTPS、JAAS等安全方面的技术;第十二章介绍了Web Services的相关概念和技术,包括SOAP、RESTful等;第十三、十四、十五章介绍了JavaEE中的RMI、JMS、JMX等技术;第十六章简要介绍了Web 2.0、Ajax、GWT、Comet等技术;第十七章讲解了JTA(Java Transaction API)的相关概念和应用;第十八章则是介绍了JavaEE的最新技术,包括JDO、OO分布式系统等;最后一章则介绍了如何有效地构建、测试和部署JavaEE应用程序。 本书采用了项目式的教学方法,对每一个章节都提供了一些示例程序,这些程序既有可运行的示例,也有结合实际案例提供的完整开发流程,用户可以在参照这些实例的基础上,逐步学习、掌握JavaEE开发技术,编写出具有高质量的企业级应用。同时,本书难度适中,易于上手,即使是JavaEE新手也能易于理解,有助于初学者快速掌握JavaEE的核心知识和技能。 ### 回答3: 《JavaEE企业级应用开发教程第二版》是一本面向JavaEE开发者的教程,旨在教授企业级应用开发的相关知识和技能。全书共分为12章,涵盖了从基础知识到高级应用的全面内容,可以帮助读者从实践角度了解JavaEE技术和应用。 第一章介绍了JavaEE开发的基础知识,包括JavaEE架构、服务器、Web应用程序和Java Servlet规范等。第二章则着重讲解常用工具和框架,例如Ant、Maven、Eclipse和Spring等,这些工具和框架可以提高开发和调试效率。 第三章到第六章主要讲解JavaEE开发的核心技术,包括JSP和Servlet、EJB、JMS和JPA等。这些技术在JavaEE应用中经常被用到,本教程详细阐述了它们的使用方法和原理,还给出了很多实例和代码示例。 第七章至第九章则分别介绍了Web服务、RESTful服务和SOAP服务的开发。这些服务是现代企业开发中常用的一种技术方法,本书通过实例和代码示例,帮助读者深入了解它们的开发过程和应用场景。 第十章到第十二章分别涵盖了企业级应用的高级技术,包括异步JMS、分布式事务、安全和性能优化等。这些技术对于构建高可用、高性能的企业级应用至关重要,本书给出了一些实践方案和经验分享,帮助读者更好地理解和应用这些技术。 总之,本书是一本全面系统的JavaEE教程,适合已经掌握Java基础知识,希望深入学习JavaEE技术和应用的开发者。通过本书的学习,读者可以提高自己的应用开发水平,同时也能够更好地理解和应用目前流行的企业级技术和框架。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值