刚开始学习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(Enterprise JavaBeans)作为一种重要的Java EE组件模型,为构建可伸缩且易于维护的企业级应用提供了强有力的支持。本文旨在通过...
**结合JSF与EJB开发实例** 1. **通信机制**:JSF通常通过Managed Beans调用EJB服务,Managed Beans作为两者的桥梁,接收前端请求并转发给EJB处理。 2. **数据展示**:JSF组件可以绑定到Managed Bean的属性,当EJB...
**EJB2.0 实例开发** EJB(Enterprise JavaBeans)是Java平台上的企业级应用组件模型,它为构建可扩展、安全且事务处理能力强的企业级应用提供了规范。EJB2.0作为其一个重要版本,引入了许多特性,如会话bean、实体...
基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于java的开发源码-EJB编程实例代码.zip 基于...
**企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建分布式...《EJB 3.0实例教程》这本书应该会详细解释这些概念,并通过实例帮助读者掌握EJB 3.0的实践应用。
**EJB3.0实例教程**是一份详细指导开发者如何使用Enterprise JavaBeans 3.0(EJB3.0)技术进行企业级应用开发的电子文档。EJB3.0是Java EE(Java Platform, Enterprise Edition)规范的一部分,旨在简化企业级组件的...
EJB 3.0是其重要的一个版本,它在EJB 2.x的基础上进行了大幅度的简化,提升了开发效率,降低了学习曲线,使得Java EE应用开发更加易用。 EJB 3.0的核心改进包括以下几个方面: 1. **注解驱动**:在EJB 2.x中,...
EJB 3.0是EJB规范的一个重要版本,它在简化API、提高开发效率和增强易用性方面做出了重大改进。 **EJB 3.0核心概念** 1. **实体Bean(Entity Bean)**:代表业务对象,通常与数据库中的记录对应。EJB 3.0引入了...
EJB(Enterprise JavaBeans)是Java企业级应用开发的核心组件之一,主要负责处理业务逻辑。EJB 3是其第三个主要版本,发布于2006年,它引入了许多重大改进,极大地简化了EJB的开发模式,降低了学习曲线,提高了开发...
在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之一就是大量使用注解(Annotation),减少了XML配置文件的使用。例如,@Stateless、@...
在《中文最新EJB3.0实例教程》中,你将学习如何创建和部署EJB3.0组件,如何使用JPA进行数据持久化,以及如何利用依赖注入和事务管理构建可扩展和可靠的业务应用。教程中可能包含实际的项目案例,通过实践操作来加深...
总之,"j2ee.ejb编程实例.rar"是一个宝贵的资源,它将理论知识与实际操作相结合,是提升J2EE EJB开发技能的理想工具。无论你是初学者还是经验丰富的开发者,都能从中获益,进一步巩固和提升自己的Java EE开发能力。
通过这个**EJB全实例教程**,学习者可以深入了解EJB的各个方面,并通过实际操作加深理解,从而更好地利用EJB开发高效、可靠的Java EE应用。同时,提供的CHM文件(1140772034247J2EE.chm)很可能是教程的电子版,包含...
内容有:简单的EJB、无状态SessionBean、有状态SessionBean、BMP位图实例、cmp实例、Message-Driven Bean、JNDI的使用、112各种EJB之间的调用、B-S结构EJB、 C-S结构EJB、UML建模与J2EE开发、RMI and RMI-...
本教程将通过一系列实例,帮助你从零开始掌握EJB3.0的精髓,为后续的Java EE企业级开发打下坚实的基础。在实际操作中,你可以结合源代码分析每个示例的工作原理,加深对EJB3.0的理解。记得在实践中不断尝试,理论与...
本文将深入探讨如何在WebSphere环境中远程调用EJB组件,同时介绍ejb3.0版本的一些关键特性,以及 ejb 开发实例和相关框架。 **一、EJB 3.0简介** EJB 3.0是EJB规范的一个重大改革,引入了更加轻量级和简化的设计,...
它可能涵盖了从基本概念到高级特性的实例,帮助读者深入理解并实践EJB 3.0开发。 **5. 子文件解析** - **mysql-ds.xml**:可能是数据库数据源的配置文件,用于连接EJB组件到MySQL数据库。 - **WSClient**:可能包含...
总结来说,EJB 3.0实例教程中的多对多映射展示了如何利用JPA注解在Java EE环境中实现对象关系映射,简化了数据库操作,提高了开发效率。在实际项目中,这种映射方式有助于创建灵活、易于维护的代码结构,尤其对于...