首先是增加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
相关推荐
在"一个完整的Helloworld"示例中,我们将深入理解EJB 2.0的基础知识,包括Bean的类型、接口、生命周期管理以及如何在实际项目中部署和运行。 ### 1. EJB Bean类型 EJB 2.0主要包括三种类型的Bean: - **Session ...
第一章 前言......4 1.1 本教程适合人群4 1.2 联系作者..4 第二章运行环境配置4 2.1 下载与安装........4 2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用...
第一章 前言......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中,我们通过在接口上添加`@Stateless`注解来定义一个无状态会话Bean。 ### 4. 测试EJB3会话Bean 在给定的描述中提到的`Test.jsp`是一个用于测试远程无状态会话bean的页面。这个页面通常会被包含在Web应用...
在这个例子中,`@Stateless`注解声明了这是一个无状态Session Bean,`doSomething`方法展示了如何暴露业务逻辑。 **结论** EJB 3.0的Session Bean为开发企业级应用提供了强大且灵活的工具。通过理解其核心概念和...
3. **无状态会话Bean(Stateless Session Beans)**:提供简单的函数式服务,不保存客户端状态。 4. **有状态会话Bean(Stateful Session Beans)**:维护客户端状态,允许在多个方法调用之间保持数据。 5. **消息...
- **无状态会话Bean**:创建一个简单的无状态会话Bean,实现业务逻辑。 - **实体Bean**:创建一个实体Bean来表示数据库中的表。 - **消息驱动Bean**:实现一个消息驱动Bean来处理来自JMS队列的消息。 #### 五、...
这个版本,jboss-4.2.3.GA-jdk6,是专为Java 6环境设计的,它在JBoss AS(Application Server)4.x系列中是一个稳定且广泛使用的版本。本文将深入探讨JBoss EJB服务器的核心特性、主要功能以及如何部署和管理EJB组件...
1. **无状态Session Bean** - **仅Remote接口**:开发简单的无状态Session Bean,仅提供Remote接口。 - **仅Local接口**:创建只有Local接口的无状态Session Bean。 - **同时提供Remote和Local接口**:结合两种...
- 介绍如何创建、部署和调用一个只有远程接口的无状态Session Bean。 - 开发只存在Local接口的无状态Session Bean: - 解释本地接口的使用场景和实现方法。 - 开发同时具备Remote与Local接口的无状态Session ...
- 无状态Bean在每个方法调用前创建新的实例。 - 有状态Bean在整个会话期间维护一个实例。 - **JNDI名称修改**: - 通过`@Name`注解或`ejb-jar.xml`修改JNDI名称。 - **拦截器**: - 通过`@Interceptor`注解定义...
2.2 运行一个EJB3例子..................................................................................................................................................9 2.3 在独立的TOMCAT 中调用EJB.......
【ejb-jboss-web实例的workspace】是一个专用于开发和部署EJB(Enterprise JavaBeans)与Web应用程序的工作环境,基于JBoss应用服务器。这个工作空间集合了开发所需的各种组件、配置文件以及源代码,便于开发者进行...
EJB3的核心概念包括实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。 2. **JBOSS7.1.1 Final的特性** - **模块化架构**:JBOSS7采用全新的模块化设计,提高了启动速度...
EJB类型主要包括会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-driven Beans)。其中,会话Bean用于业务逻辑处理,实体Bean用于持久化数据,消息驱动Bean则用于处理消息队列。 **二...
1. 无状态会话Bean:适用于一次性的、与特定客户上下文无关的操作,如计算或查询。 2. 有状态会话Bean:维护与特定客户端的会话状态,可以存储客户数据并在多个方法调用之间保持状态。 三、Jboss EJB开发环境 Jboss...
在EJB中,会话Bean分为两种类型:无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)。无状态会话Bean不保留任何客户端特定的信息,每次调用都是独立的。而有状态会话Bean则可以...