`
jackle_liu
  • 浏览: 147780 次
文章分类
社区版块
存档分类
最新评论

jboss4.x下的第一个ejb2.0程序(3)---无状态sessionBean调用entityBean

阅读更多
首先是增加entityBean对应的三个类:
com.rox.HelloEntity(EntityBean)
com.rox.HelloEntityHome(EJBHome)
com.rox.HelloEntityInterface(EJBObject)
三个类对应的代码如下:
HelloEntity.java:
package com.rox;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.RemoveException;
import javax.ejb.CreateException;

public abstract class HelloEntity implements EntityBean {
  
    /** The entity context */
    private EntityContext context;
    public abstract Integer getHelloNo();
    public abstract void setHelloNo(Integer s);
    public abstract String getHelloName();
    public abstract void setHelloName(String s);
    public String getHello()
    {
        return getHelloName();
    }
    public HelloEntity() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    public Integer ejbCreate() throws CreateException {
        setHelloNo(1);
        setHelloName("my god");
        return null;
    }

    public void ejbPostCreate() throws CreateException {
    }
    public void setEntityContext(EntityContext newContext) throws EJBException {
        context = newContext;
    }
    public void unsetEntityContext() throws EJBException {
        context = null;
    }
    public void ejbRemove()
        throws RemoveException,
        EJBException,
        RemoteException {
    }
    public void ejbActivate() throws EJBException, RemoteException {
        // TODO Auto-generated method stub
    }
    public void ejbPassivate() throws EJBException, RemoteException {
        // TODO Auto-generated method stub
    }
    public void ejbLoad() throws EJBException, RemoteException {
        // TODO Auto-generated method stub
    }
    public void ejbStore() throws EJBException, RemoteException {
        // TODO Auto-generated method stub
    }
}
HelloEntityHome.java:
package com.rox;

public interface HelloEntityHome
   extends javax.ejb.EJBHome
{
   public com.rox.HelloEntityInterface create()
      throws javax.ejb.CreateException,java.rmi.RemoteException;
   public com.rox.HelloEntityInterface findByPrimaryKey(Integer pk)
      throws javax.ejb.FinderException,java.rmi.RemoteException;
}
 
HelloEntityInterface.java:
package com.rox;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface HelloEntityInterface extends EJBObject
{  
   public String getHello() throws RemoteException;
}
 
   这三个类的大部分方法都是继承自ejb对象的接口。
   例如:
ejbActivate
ejbPassivate
ejbRemove
ejbStore
ejbLoad
setEntityContext
unsetEntityContext
 
   只有唯一的一个业务方法:public String getHello(),在HelloEntityInterface 中定义,在HelloEntity中具体实现.
 
 
 
   注意在HelloEntity中定义了几个抽象的get,set方法,这些方法对应的其实是持久化的属性(对于数据库开说是表的字段)。这也是ejb的规范约定的。
   
 
写完这三个类之后,接下来就是配置文件,也是三个。
ejb-jar.xml
jboss.xml
jbosscmp-jdbc.xml
 
在ejb-jar.xml中添加:
     <entity></entity>
         <description></description>
         <display-name></display-name>Name for HelloEntity
         <ejb-name></ejb-name>HelloEntityInterface
         <home></home>com.rox.HelloEntityHome
         <remote></remote>com.rox.HelloEntityInterface
         <ejb-class></ejb-class>com.rox.HelloEntity
         <persistence-type></persistence-type> Container
         <prim-key-class></prim-key-class> java.lang.Integer
         <reentrant></reentrant>False
         <cmp-version></cmp-version>2.x
         <abstract-schema-name></abstract-schema-name>HelloEntity
         <cmp-field></cmp-field>
         <field-name></field-name>helloNo
        
         <cmp-field></cmp-field>
         <field-name></field-name>helloName
        
         <primkey-field></primkey-field> helloNo
   <!---->
     
 
在jboss.xml中添加:
      <entity></entity>
         <ejb-name></ejb-name>HelloEntityInterface
         <jndi-name></jndi-name>ejb/HelloEntity
     
 
jbosscmp-jdbc.xml是新增加的配置文件,它的内容如下:
<!---->
<!---->http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd">
<jbosscmp-jdbc></jbosscmp-jdbc>
  <enterprise-beans></enterprise-beans>
    <entity></entity>
      <ejb-name></ejb-name>HelloEntityInterface
      <table-name> </table-name> HELLO
      <cmp-field></cmp-field>
        <field-name></field-name>helloNo
        <column-name></column-name>HELLO_NO
     
      <cmp-field></cmp-field>
        <field-name></field-name>helloName
        <column-name></column-name>HELLO_NAME
     
   
 
 
可以看出jbosscmp-jdbc是bean中属性和表的属性的对应关系,实际上我们并不需要建立表,ejb会通过配置文件建立表.可以在deploy目录下发现
下会发现各种数据库连接文件的例子.
 hsqldb-ds.xml,这是jboss中定义的数据库连接文件.hsqldb说明是与hsqldb相连.在{JBOSS_HOME}\docs\examples\jca
分享到:
评论

相关推荐

    EJB2.0一个完整的Helloworld

    在"一个完整的Helloworld"示例中,我们将深入理解EJB 2.0的基础知识,包括Bean的类型、接口、生命周期管理以及如何在实际项目中部署和运行。 ### 1. EJB Bean类型 EJB 2.0主要包括三种类型的Bean: - **Session ...

    EJB3.0 实例教程 -- 切片1

    第一章 前言......4 1.1 本教程适合人群4 1.2 联系作者..4 第二章运行环境配置4 2.1 下载与安装........4 2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用...

    EJB3.0 实例教程 -- 切片2

    第一章 前言......4 1.1 本教程适合人群4 1.2 联系作者..4 第二章运行环境配置4 2.1 下载与安装........4 2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用...

    EJB3 示例有状态和无状态会话bean

    在EJB3中,我们通过在接口上添加`@Stateless`注解来定义一个无状态会话Bean。 ### 4. 测试EJB3会话Bean 在给定的描述中提到的`Test.jsp`是一个用于测试远程无状态会话bean的页面。这个页面通常会被包含在Web应用...

    EJB3.0开发Session Bean.rar

    在这个例子中,`@Stateless`注解声明了这是一个无状态Session Bean,`doSomething`方法展示了如何暴露业务逻辑。 **结论** EJB 3.0的Session Bean为开发企业级应用提供了强大且灵活的工具。通过理解其核心概念和...

    jboss ejb 3.zip

    3. **无状态会话Bean(Stateless Session Beans)**:提供简单的函数式服务,不保存客户端状态。 4. **有状态会话Bean(Stateful Session Beans)**:维护客户端状态,允许在多个方法调用之间保持数据。 5. **消息...

    JBoss下配置和部署EJB英文版.pdf

    - **无状态会话Bean**:创建一个简单的无状态会话Bean,实现业务逻辑。 - **实体Bean**:创建一个实体Bean来表示数据库中的表。 - **消息驱动Bean**:实现一个消息驱动Bean来处理来自JMS队列的消息。 #### 五、...

    jboss-4.2.3.GA-jdk6的EJB服务器

    这个版本,jboss-4.2.3.GA-jdk6,是专为Java 6环境设计的,它在JBoss AS(Application Server)4.x系列中是一个稳定且广泛使用的版本。本文将深入探讨JBoss EJB服务器的核心特性、主要功能以及如何部署和管理EJB组件...

    ejb3.0非常实用教程

    1. **无状态Session Bean** - **仅Remote接口**:开发简单的无状态Session Bean,仅提供Remote接口。 - **仅Local接口**:创建只有Local接口的无状态Session Bean。 - **同时提供Remote和Local接口**:结合两种...

    Jboss EJB3.0教程

    - 介绍如何创建、部署和调用一个只有远程接口的无状态Session Bean。 - 开发只存在Local接口的无状态Session Bean: - 解释本地接口的使用场景和实现方法。 - 开发同时具备Remote与Local接口的无状态Session ...

    EJB3.0中文 版

    - 无状态Bean在每个方法调用前创建新的实例。 - 有状态Bean在整个会话期间维护一个实例。 - **JNDI名称修改**: - 通过`@Name`注解或`ejb-jar.xml`修改JNDI名称。 - **拦截器**: - 通过`@Interceptor`注解定义...

    EJB3.0实例教程

    2.2 运行一个EJB3例子..................................................................................................................................................9 2.3 在独立的TOMCAT 中调用EJB.......

    ejb-jboss-web实例的workspace

    【ejb-jboss-web实例的workspace】是一个专用于开发和部署EJB(Enterprise JavaBeans)与Web应用程序的工作环境,基于JBoss应用服务器。这个工作空间集合了开发所需的各种组件、配置文件以及源代码,便于开发者进行...

    jboss7 + EJB3

    EJB3的核心概念包括实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。 2. **JBOSS7.1.1 Final的特性** - **模块化架构**:JBOSS7采用全新的模块化设计,提高了启动速度...

    Jboss下hibernate整合EJB

    EJB类型主要包括会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-driven Beans)。其中,会话Bean用于业务逻辑处理,实体Bean用于持久化数据,消息驱动Bean则用于处理消息队列。 **二...

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

    1. 无状态会话Bean:适用于一次性的、与特定客户上下文无关的操作,如计算或查询。 2. 有状态会话Bean:维护与特定客户端的会话状态,可以存储客户数据并在多个方法调用之间保持状态。 三、Jboss EJB开发环境 Jboss...

    Eclipse+Jboss EJB技术 会话Bean

    在EJB中,会话Bean分为两种类型:无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)。无状态会话Bean不保留任何客户端特定的信息,每次调用都是独立的。而有状态会话Bean则可以...

Global site tag (gtag.js) - Google Analytics