`
8366
  • 浏览: 802209 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ejb2.0 HelloWord

    博客分类:
  • ejb
阅读更多

   中国电信网上营业厅项目是使用ejb2.0开发的,在项目中已有的框架中修修补补,也没写过一个HelloWorld的例子,今天朝花夕拾,写一个例子

 

步骤:

 

1.在eclipse下新建一个java项目.命名叫 ejb2test

2.在项目的根目录下建立  META-INF 文件夹,主要是为了存放ejb-jar.xml, jboss.xml

3.在src文件夹下建立 两个包 cn.com.xinli.ejb  ,cn.com.xinli.test

4.到入需要的jar包到classpath中, jboss-j2ee.jar,这个jar包可以在 %jbossHome%\server\default\lib中找到

5.下面开始写代码,一个ejb需要写两个接口和一个实现类.

 

在cn.com.xinli.ejb

 

先写本地接口 HelloWorldHome.java

package cn.com.xinli.ejb;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface HelloWorldHome extends EJBHome
{
	HelloWorldRemote create() throws RemoteException, CreateException;
}

 

远程接口:  HelloWorldRemote.java

 

package cn.com.xinli.ejb;

import java.rmi.RemoteException;

import javax.ejb.EJBObject;

public interface HelloWorldRemote extends EJBObject
{
	String sayHello() throws RemoteException;

}

 

 

 实现Bean类:HelloWorldBean.java (必须有会话bean的5个状态,可以为空实现,和远程接口中要实现的方法,网厅项目中是又把实现方法写在一个类里,每次 new一个类的对象,返回一个实现方法给Bean)

 

package cn.com.xinli.ejb;

import java.rmi.RemoteException;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;


public class HelloWorldBean implements SessionBean
{
	
	 public void setSessionContext(SessionContext arg0) throws EJBException, RemoteException
	    {
	        System.out.println("set session context");
	        
	    }
	    
	    public void ejbCreate() throws EJBException
	    {
	        System.out.println("ejb create");
	        
	    }

	    public void ejbRemove() throws EJBException, RemoteException
	    {
	        System.out.println("ejb remove");
	    }

	    public void ejbActivate() throws EJBException, RemoteException
	    {
	        System.out.println("ejb activate");
	    }

	    public void ejbPassivate() throws EJBException, RemoteException
	    {
	        System.out.println("ejb passivate");
	    }

	    public String sayHello() throws RemoteException
	    {
	        return "Welecome to ejb2.0,HXL";
	    }

	}


 

 

 6.写配置文件在META-INF 目录下,这个目录的名字不能改变(这里我们是一个有状态的回话bean)

 

ejb-jar.xml

 

 

 

<?xml version="1.0" encoding="gb2312"?> 
<!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>
	<description>ejb</description>
	<display-name>myEJBTest</display-name>

	<enterprise-beans>
		<session>
			<display-name>helloEJB</display-name>
			<ejb-name>helloEJB</ejb-name>
			<home>cn.com.xinli.ejb.HelloWorldHome</home>
			<remote>
				cn.com.xinli.ejb.HelloWorldRemote
			</remote>
			<ejb-class>
				cn.com.xinli.ejb.HelloWorldBean
			</ejb-class>
			<session-type>Stateful</session-type>
			<transaction-type>Bean</transaction-type>
		</session>
	</enterprise-beans>
</ejb-jar>

 

 

 jboss.xml  (其中)<jndi-name>元素的值必须在容器中唯一

 

 

 

<?xml version="1.0" encoding="gb2312"?>

<jboss>
	<enterprise-beans>
		<session>
			<ejb-name>helloEJB</ejb-name>
			<jndi-name>ejb/helloEJB</jndi-name>
		</session>
	</enterprise-beans>
</jboss>

 

 

7.把项目打成jar包发布在ejb容器中,我使用的是Jboss,大包后放在 %JbossHome%\server\default\deploy下

 

打包我们可以用eclipse ,在项目上点右键->Export->Jar File->  记得要选择generate 就可以了,也可以使用 jar cvf 命令来打jar包

8.启动Jboss,我们会看到我们发布的ejb,如果没有错误的话

 

9.下面我们写一个测试,首先我们要导入 jboss-client.jar 到classpath 下,这个jar包在 %JbossHome%\client下

 

Test.java

 

package cn.com.xinli.ejb.test;

import java.util.Properties;

import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;

import org.apache.log4j.Logger;

import cn.com.xinli.ejb.HelloWorldHome;
import cn.com.xinli.ejb.HelloWorldRemote;

public class Test
{

	static Logger log=Logger.getLogger(Test.class);
	/**
	 * @param args
	 */
	public static void main(String[] args)
    {
		
        System.out.println("===========================================================");
        Properties props = new Properties();
        props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        props.setProperty("java.naming.provider.url", "localhost:1099");
        props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
        try
        {
            InitialContext ctx = new InitialContext(props);
            
            Object objRef = ctx.lookup("ejb/helloEJB");
            
            HelloWorldHome home = (HelloWorldHome) PortableRemoteObject.narrow(objRef, HelloWorldHome.class);
            
            HelloWorldRemote remote = home.create();
            
            log.info(remote.sayHello());
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
}

 

 

 

 10.结果:

 

===========================================================
0    [main] INFO  cn.com.xinli.ejb.test.Test(38) - Welecome to ejb2.0,HXL

 

 

 到此,我们就完成了一个ejb2.0 HelloWorld 的开发

 

 在ejb-jar.xml 中,我们将<session-type> </session-type> 元素的值修改为Stateless,就是一个无状态的回话bean了,无状态的会话bean也是使用的最多的bean了. 

 

 

 

7
1
分享到:
评论

相关推荐

    精通EJB2.0 书籍源码

    《精通EJB2.0》是一本专注于企业级JavaBeans(EJB)2.0版本技术的专业书籍。源码提供给读者深入理解EJB2.0的实践操作,帮助开发者在实际项目中应用EJB技术。以下是根据这些文件名解析出的一些关键知识点: 1. **EJB...

    全面研读EJB2.0规范

    **EJB2.0规范详解** 企业级JavaBean(Enterprise JavaBeans,简称EJB)是Java平台上用于构建可部署的、分布式的企业级应用程序的核心技术之一。EJB2.0是其发展过程中的一个重要版本,它引入了许多关键特性,极大地...

    EJB2.0 实例开发

    **EJB2.0 实例开发** EJB(Enterprise JavaBeans)是Java平台上的企业级应用组件模型,它为构建可扩展、安全且事务处理能力强的企业级应用提供了规范。EJB2.0作为其一个重要版本,引入了许多特性,如会话bean、实体...

    Ejb2.0教程-java教程

    **EJB 2.0 入门教程** Enterprise JavaBeans(EJB)是Java平台企业版(Java EE)的一部分,它提供了一种标准的方式来构建分布式、可移植的服务器端组件。EJB 2.0 是EJB技术的一个里程碑,发布于2003年,引入了许多...

    EJB2.0

    EJB2.0是EJB规范的一个版本,它在1.1版的基础上进行了许多改进,旨在提高开发者的生产力,同时保持了企业级应用的可扩展性和可靠性。 EJB2.0的主要组成部分包括: 1. 会话Bean(Session Beans):它们代表客户端的...

    ejb2.0与ejb3.0的区别

    ejb2.0 ejb3.0的区别,比较详细讲解两者的区别

    EJB2.0一个完整的Helloworld

    **企业级JavaBeans(EJB)2.0详解——基于Helloworld示例** EJB(Enterprise JavaBeans)是Java EE(Java Platform, Enterprise Edition)平台的核心组成部分,它为开发分布式、事务处理、安全和可扩展的企业级应用...

    使用ejb2.0 ql教程代码

    在这个"使用ejb2.0 ql教程代码"中,我们将会探讨EJB 2.0中的查询语言(QL)及其在实际应用中的使用。 EJB QL(Enterprise JavaBeans Query Language)是EJB 2.0引入的一种面向对象的查询语言,它允许开发者根据对象...

    ejb2.0.rar_EJB2.0特性_ejb2.0

    ejb2.0的新特性介绍

    图解eclipse+myelcipse开发EJB2.0

    【EJB2.0开发详解:使用Eclipse和MyEclipse】 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上的一个核心组件,主要用于构建可扩展、安全且可移植的企业级应用。EJB2.0是EJB规范的一个重要版本,它...

    ejb2.0开发

    EJB(Enterprise JavaBeans)2.0是Java平台企业版(Java EE)的一部分,它提供了一种标准的方式来创建可部署在服务器端的组件,用于构建分布式的企业级应用程序。EJB 2.0的核心概念包括会话bean、实体bean和消息驱动...

    ejb2.rar_ejb2_ejb2.0

    ejb2.0 教程,ejb2.0 教程,ejb2.0 教程

    EJB2.0开发.rar_EJB2.0 pdf_ejb_ejb 2_ejb2.0_websphere

    ejb的使用指南,我见过的最好的EJB书籍之一,希望能得到大家的喜爱

    websphere6 ejb2.0

    【标题】:WebSphere 6与EJB 2.0详解 【描述】:WebSphere 6是一个由IBM推出的强大企业级应用服务器,它支持Java Enterprise Edition(JEE)规范,其中包括EJB 2.0(Enterprise JavaBeans 2.0)。EJB 2.0是Java平台...

    EJB2.0 Entity bean(PDF) .zip_EJB2 enti_EJB2.0 P_ejb_ejb2 CMP sup

    关于EJB2.0的相关资料,具体的有新的CMP组件模型,新的支持JMS的bean类型

    EJB2.0.zip

    从最基础开始介绍jsf,逐步深入,让读者容易接受.

    ejb2.0 api文档快速开发

    EJB(Enterprise JavaBeans)2.0 API是Java EE(Enterprise Edition)平台的一个核心部分,主要用于构建企业级的分布式应用程序。这个框架为开发者提供了一种规范化的、面向服务的架构来设计和实现业务逻辑,特别是...

    EJB2.0.pdf

    EJB2.0.pdf

    精通 EJB 2.0

    全面系统讲解了分布式组件EJB的开发 虽然为EJB2.0但对于学习EJB原理,值得推荐.

Global site tag (gtag.js) - Google Analytics