开发一个简单的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内进行调用测试。
分享到:
相关推荐
Enterprise JavaBeans...总的来说,这个ejb学习的例子是一个很好的起点,它涵盖了EJB的核心概念和实际应用。通过分析和运行这个例子,你可以逐步熟悉并掌握EJB技术,为构建更复杂的Java EE应用程序打下坚实的基础。
Enterprise JavaBeans(EJB)是Java平台上...通过这个简单的EJB例子,你可以学习到如何从头开始创建一个基本的EJB组件,了解其工作原理和在实际项目中的应用。这将帮助你更好地理解和掌握Java企业级开发的核心技术。
这个"简单EJB3例子"将展示如何使用EJB3来创建一个简单的实体Bean(Entity Bean),这是EJB中负责持久化数据的部分。 首先,了解EJB3中的核心概念: 1. **实体Bean(Entity Bean)**:代表业务对象,通常与数据库中...
Java EJB简单例子,这是HelloWorldBean的Home接口,它是EJB对象的生成库,无状态会话(将在下一个实例中具体讲解)Bean,这个接口是客户端与EJB对象相互作用的中间途径,通过Client触发调用Bean方法: try { //...
在本“EJB简单例子”中,我们将探讨EJB的基本概念、类型以及如何创建和运行一个简单的EJB应用。 1. **EJB组件类型** - **会话Bean(Session Beans)**:代表客户端的临时会话,提供业务逻辑服务。分为无状态会话...
4. **嵌入式EJB(Embedded EJB)**:这是Java EE 6引入的一个新概念,它允许在Java SE应用程序中使用EJB,简化了小型企业级服务的开发。嵌入式EJB可以在非Java EE容器中运行,如Java SE应用或Swing应用,无需部署到...
ejb简单例子
4. **简化会话bean(Simplified Session Beans)**:EJB3的无状态会话bean(`@Stateless`)和有状态会话bean(`@Stateful`)更加易用,不再需要接口和Home接口,只需一个实现了业务逻辑的类即可。 5. **实体bean的...
在EJB_TEST中,我们看到的是作者自编的一个EJB实例,这通常涉及到创建、部署以及运行EJB组件,以便展示其功能和工作原理。 **EJB的组成部分**: 1. **实体Bean (Entity Bean)**:代表业务数据,通常映射到数据库中...
EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了重大改进,引入了许多简化开发的新特性,使得Java企业级开发变得更加易用和高效。 EJB3.0的核心特点包括: 1. **注解驱动(Annotation-based)**:在EJB...
例如,一个简单的EJBQL查询可能是: ```java String ejbql = "SELECT entity FROM Entity entity WHERE entity.someProperty = :value"; ``` 在这个示例中,`Entity`是我们的实体类,`someProperty`是该类的一个...
会话Bean可以是无状态的,即每个客户端请求都会创建一个新的Bean实例,或者有状态的,其中每个客户端会话都对应一个特定的Bean实例,保持了客户端的上下文信息。 2. **实体Bean(Entity Beans)**:实体Bean映射到...
在"一个简单的EJB"项目中,我们可以看到一个基础的EJB实现,通常这样的例子会展示如何创建一个简单的EJB组件,以及如何在客户端调用这个组件的方法,比如显示一个"Hello, World!"信息。这对于初学者来说,是一个很好...
5. **客户端调用**:ejb_client可能是一个简单的Java客户端程序,使用EJB的远程接口来调用服务端的EJB方法。JNDI(Java Naming and Directory Interface)用于查找并绑定EJB的引用。 6. **readme.txt**:这个文件...
在这个"HelloEJBS"项目中,我们将深入探讨EJB的基本概念、组件类型以及如何创建和部署一个简单的EJB应用。 1. **EJB基础** - **EJB组件**: EJB主要包括三种类型的组件:会话Bean(Session Beans)、实体Bean...
这个开发例子展示了如何将它们结合使用,以创建一个简单的内容管理系统,该系统能够实现新闻的编辑、修改和删除功能。 【JSF(Java Server Faces)】 JSF是一种Java标准的用户界面组件模型,用于构建服务器端的Web...
为了运行这个EJB例子,你需要一个支持EJB的Java EE服务器,如GlassFish、WildFly或TomEE。部署EJB应用到服务器后,客户端代码可以通过JNDI查找找到并调用Bean的方法。在开发过程中,IDE如Eclipse或IntelliJ IDEA提供...
在本文中,我们将深入探讨如何在EJB3环境下使用数据库,以一个简单的例子来引导初学者。EJB(Enterprise JavaBeans)3.0是Java EE(企业版)平台的一部分,提供了一种标准的方法来开发分布式、事务处理和持久化的...
本文将深入探讨EJB的工作原理,并通过一个简单的示例帮助读者更好地理解。 #### EJB的基本概念 EJB主要分为三类:会话Bean(Session Bean)、实体Bean(Entity Bean)以及消息驱动Bean(Message-Driven Bean)。...
下面是一个简单的JNDI查找EJB的步骤: 1. 创建`InitialContext`:这是JNDI操作的第一步,通常在客户端或EJB内部进行。 ```java Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, ...