跟菜鸟一起学习EJB3.0(一):前言和安装配置

第一章   前言

1.1      为什么学习EJB3

作为一个刚刚踏入软件开发领域的新人,我无法真正体会以前EJB带给我们哪些激动人心的东西,同时也不能理解我们为什么对它又爱又恨,心痛得弃它而去。还是学生时代,我仅仅从师长或者软件领域的大牛那里得到经验:EJB很复杂,还是学习spring吧。世俗的舆论告诉我,EJB已经是被人抛弃的名门之后,这种偏见也让我投入到春天的怀抱。

出身贵族,但却无贵族之气,处处遭人抛弃,EJB为什么会有如此的境遇?spring给了我们答案:简单实用才是硬道理。的确,springIoCAOP,还有那些轻盈的事务处理,对许多开源框架的完美支持,一朵朵漂亮的花儿,让我们怎能抵挡春天的诱惑。

当春天的花儿开满了群山遍野,已经没有EJB的容身之所之时,这个巨人才如梦初醒。经过短暂的沉睡,EJB3.0重磅出击,EJB3的架构改变了开发体验,引入的非常简化的开发模型,降低了企业bean本身的复杂性,解决了以前EJB存在的许多诟病,所有的一切再向世人宣布:EJB王者归来!

但是依赖注入使用元数据是否真的比xml更加的优美?AOP方面能否赶超spring依然是个未知数,持久层真的像Hibernate那样深入人心?这些都值得我们期待,EJB依然有很长的路要走。既然EJB依然不能给我们带来颠覆一切的改变,我们为什么还要学习EJB呢?

每个使用spring的人都知道spring很棒,项目中使用spring是一个伟大的选择,但是spring在很多方面偏离了Java EE的标准,而我的建议是紧跟标准。只有紧跟着标准,你的发展才不会偏离方向,你的项目才能降低风险。所以学习EJB3的确是一个不错的选择,即使它现在还不成熟,即使还不深入民心,但是EJB3已经给我们带来很多激动人心的改变,随着时间的推移,EJB也将越来越完善,作为明天的主流,难道我们不满怀激动心情继续下去吗?

Let’s go!让我们出发吧。

1.2      编写该书的初衷

EJB3规范推出以后,受到很多开发人员的欢迎,学习EJB3的人越来越多,但是网上资料非常的分散,增加了学习的难度。当然也存在比较好的EJB3的教程,这些教程对我们的学习带来很大的帮助。在学习新技术的过程中,我们要不断的总结,而对于我则喜欢写一些学习笔记。突然就有了一个想法,为什么不把我们学习的过程记录下来,在这个过程中我们可能会遇到很多的问题,会有很多学习的心得,当然也由于自己知识的缺陷和理解的不足,有很多地方会出现很多的误解,而我们要解决这些问题,要消除这些误解,要真正体会EJB3给我们带来的巨大改变,闭门造车是不行的,所以我和同事商量决定共同写一本这样的教程,而这本教程不应该是我们的一家之言,而是所有学习EJB3学习者智慧的结晶。甚至这谈不上什么教程,作为初学者我们也没有编写教程的资本,正像书名一样我们希望所有的学习者能相互的学习,引起思想的碰撞。我们从初学者的角度去共同的讨论,学习,这样不更能引起我们的共鸣吗?

我们不想误人子弟,文章中的观点只是我们的个人观点,所以对于一些问题的认识不免会有失偏颇。希望朋友们能够诚恳的批评指正。我们学习中遇到的问题也希望朋友们讨论共同找到答案。以学习者的角度去阐述EJB3,我希望我们都是其中的受益者。

JBoss提供了对EJB3的完美支持,所以我们采用JBoss作为学习EJB3的平台。而所有的文章和源码我们将发布在我的技术blog上(http://blog.youkuaiyun.com/yongtree http://yongtree.javaeye.com),希望朋友们能多多讨论,一块充实它的内容。也希望朋友们能多多支持,你们的支持就是我们坚持不懈的动力。

                                                    谭明智 2008-3-2

第二章   安装配置

2.1 所需资源

1JDK5.0  下载地址:http://java.sun.com/j2se/1.5.0/download.jsp

2JbossIDE 下载地址:http://nchc.dl.sourceforge.net/sourceforge/jboss/JBossIDE-2.0.0.Beta2-Bundle-win32.zip

注:上面的下载地址所下的JbossIDE是内嵌了Eclipse3.2版本的完整的开发平台。另外一个方式,用户可以在原有Eclipse的基础上,只下载JbossIDE的插件版本(JBossIDE-2.0.0.Beta2-ALL.zip),然后copy文件到相应的目录或者配置links目录。

3JBOSS-4.2.1.GA 服务器

下载地址:http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=16942&release_id=523619

注:JBOSS-4.2.1.GA已经内嵌了EJB3.0容器,所以可以直接用于EJB3.0的开发。而对于JBOSS4.0系列的版本,因为默认的服务器不带有EJB3.0的容器,所以需要手工添加,这时就需要用到jboss-EJB-3.0_RC9_Patch_1.zip该文件包。下载地址:

http://sourceforge.net/project/downloading.php?group_id=22866&use_mirror=nchc&filename=jboss-EJB-3.0_RC9_Patch_1.zip&14180397

下载了该包以后,需要把包中的libdocs文件夹中类包和配置文件发布到JBOSS相应的目录,为了便于这些文件的发布,这时需要用到Ant这个批编译软件。

Ant-1.7.0 用户可以去http://ant.apache.org/下载。

2.2 安装配置

1、安装方法:

JBOSS-4.2.1.GA解压即可完成安装,为了避免出现意想不到的错误,目录不要带有空格。安装完后请在“系统变量”里添加JBOSS_HOME 变量,值为Jboss 的安装路径。如下图:

http://photo.xiaonei.com/getphoto.do?id=505642587&owner=221869543&pos=13

现在验证安装是否成功。双击[jboss 安装目录]/bin/run.bat 启动jboss,如果没有异常抛出,并看到下图,则说明你安装成功了。

http://photo.xiaonei.com/getphoto.do?id=505642316&owner=221869543&pos=1

现在我们可以打开浏览器,键入http://localhost:8080/进入jboss欢迎主页,。在JBoss Management 栏中点击”JMX Console”进入Jboss的管理界面。如下图所示:

http://photo.xiaonei.com/getphoto.do?id=505642339&owner=221869543&pos=2

2Jboss EJB3.0开发配置

开发平台建议使用官方网站下载的JBoss IDE的完整版本,该版本内部已经集成了大部分的jboss系列插件和EJB3.0开发的插件。对于使用MyEclipse的用户来说,MyEclipse也提供了EJB3.0开发的相关环境,但是我们还是采用全套的JBOSS组合。对于需要使用MyEclipse功能的用户,由于MyEclipseJBoss IDE功能的重叠和差异,为了避免意想不到功能误用,建议独立使用MyEclipseJBoss IDE。下图为JBoss IDE2.0.0Beta2的启动画面。

http://photo.xiaonei.com/getphoto.do?id=505642357&owner=221869543&pos=3

配置Jboss服务器:Window->Preferences->Server->Installed Runtime(如下图所示)

http://photo.xiaonei.com/getphoto.do?id=505642378&owner=221869543&pos=4

点击Add按钮,出现以下界面:

http://photo.xiaonei.com/getphoto.do?id=505642402&owner=221869543&pos=5

在选择运行环境类型时,选择JBoss Inc选项中的Jboss 4.0 Server Adapter Runtime,而不是选择JBoss选项中的JBoss v4.0。(在第一次配置时,这里是一个误区,需要特别注意)

点击Next按钮后,出现下图界面。

http://photo.xiaonei.com/getphoto.do?id=505642438&owner=221869543&pos=6

选择jboss的根目录和JRE,注意JRE的目录应该是你安装JDK的根目录,在minimaldefaultall三个配置项中进行选择,通常情况是选择default,但是为了在开发EJB程序的时候不会出现意想不到的问题,我们在这里选择all选项。

设置服务器的另外一种方式就是在新建一个EJB3.0工程时进行设置,在以后的内容中在做介绍。

 

2.3 开始令人作呕的HelloWorld

为了检查我们的配置是否正确,我们再一次用那个臭名昭著的HelloWorld来进行测试。

1、  新建EJB3.0工程

http://photo.xiaonei.com/getphoto.do?id=505642458&owner=221869543&pos=7

输入工程名称点击Next进入选择JBoss EJB3容器,在如图所示的界面上,我们选择最后一个(红线圈出)。注:在前面我们讲解配置JBoss服务器的时候,我们提过配置服务器的另外一种方法,便是在新建工程的时候创建一个新的服务器(蓝线圈出)。

http://photo.xiaonei.com/getphoto.do?id=505642475&owner=221869543&pos=8

点击Finish,则一个EJB3的工程建立完毕。

2、  新建一个无状态的Session Bean

http://photo.xiaonei.com/getphoto.do?id=505642497&owner=221869543&pos=9

点击Next,则出现如下界面。

http://photo.xiaonei.com/getphoto.do?id=505642517&owner=221869543&pos=10

Session Bean的类型我们选择stateless(红线圈出),在建立Session Bean的时候,系统会自动给我们建立两个类,一个是Session Bean的接口,一个是接口的实现类。我们使用的JBoss EJB3建立Session Bean的时候,与EJB2.1MyEclipse不同就是没有让我们选择是否建立本地(Local)接口。

 

问题2.1:为什么JBoss EJB3取消了Local接口的建立?

 

以下是该接口定义的一个方法,在接口的前面用元注释Remote标注,表示该接口为一个远程接口。

package com.baiyyy;

import javax.ejb.Remote;

@Remote
public interface HelloWorld {
  public String sayHello(String name);
}

以下是该远程接口实现的一个会话Bean,其中类前面使用Stateless标注,表示该Session Bean为无状态的会话Bean

package com.baiyyy;

import javax.ejb.Stateless;
import com.baiyyy.HelloWorld;


/**
 
实现远程接口的无状态会话Bean
 
 @author yongtree
 
 */
public @Stateless class HelloWorldBean implements HelloWorld {

  public String sayHello(String name) {
    // TODO Auto-generated method stub
    return name + "
说:HelloWorld!";
  }

}

这样我们就建立了一个最简单的无状态的Session Bean,接下来的工作我们就要把它打包并发布在JBoss EJB容器中。在工程上点击鼠标右键àExport,在以下界面上选择JavaàJAR file

http://photo.xiaonei.com/getphoto.do?id=505642545&owner=221869543&pos=11 

按照提示,把jar文件发布到JBoss服务器的serveràallàdeploy中,并启动JBoss服务器。如果JBoss服务器已经启动,就不需要重新启动,因为JBoss支持热部署。

最后我们写一个测试程序测试一下,新建一个带有main方法的测试类Test.java:

package com.baiyyy;

import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
 
用于测试Session Bean的测试类
 @author yongtree
 *
 */
public class Test {

  /**
   @param args
   @throws NamingException 
   */
  public static void main(String[] args) throws NamingException {
    // TODO Auto-generated method stub
    InitialContext ict=new InitialContext();//
    HelloWorld hello=(HelloWorld)ict.lookup("HelloWorldBean/remote");
    System.out.println(hello.sayHello("yongtree"));
  }

}

输出结果:

 http://photo.xiaonei.com/getphoto.do?id=505642581&owner=221869543&pos=12

程序运行成功,证明我们搭建的JBoss EJB3的开发环境是正确的。在以后的学习过程中,我们将在这个平台上进行开发。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值