使用 Eclipse 开发 J2EE 应用(转)

Eclipse 是一个非常优秀的集成开发环境,这个在 IBM 支持下的开放源码项目经过一段时期的发展完善,已经为广大 Java 开发者所熟悉。Eclipse 的出现,为 Java 开发者提供了免费使用强大的 Java IDE 的机会,通过集成大量的 pluginEclipse 的功能可以不断扩展,以支持各种不同的应用。

Lomboz 是一个免费的Eclipse plugin,它将很多 Java 应用服务器、J2EE 组件和 Web 应用开发集成到 Eclipse 中,可以帮助 Java 开发者使用 Eclipse 建立、测试、部署 J2EE 应用。

JBoss 是一个开放源码、功能强大的Java 应用服务器,也是目前最受 Java 开发者欢迎的Java 应用服务器,被 Java World 的编辑们评为2002 年的最佳应用服务器。2003 年到目前为止的下载量已经超过了一百五十万次。

一、下载、安装和配置

1 Eclipse 的下载和安装

首先需要安装 JDK,可以到 Sun 的网站上去下载最新版本并安装。

然后到 www.eclipse.org去下载 Eclipse 的最新版本,目前的最新版本是 2.1。下载以后解压到自己想要的目录中,比如 D:\Eclipse,直接运行 eclipse.exe,第一次运行的时候会自动寻找 JDK 并完成相应的配置,然后就进入了 Eclipse 的主界面。关于 Eclipse 的基本使用方法,developerWorksEclipse 的网站以及 Eclipse 的随机文档上都有详细地介绍,这里不详细描述了。

2 Jboss 的下载、安装

JBoss 目前的最新版本是 3.2.1,不过我觉得这个版本有一些问题,启动服务器的时候会有一些 jar 包找不到,导致 WARNERROR 的发生。所以我推荐下载 3.0.7,也可以下载集成了 Tomcat 4.1.24JBoss 3.0.7 版本。

下载后解压,我们假设 JBOSS_HOMEJBoss 的主目录,执行 JBOSS_HOME/bin/run.bat,就启动了 JBoss 服务器。一般会在 1 分钟左右启动完毕。

3 Lomboz 的下载、安装和配置

Lomboz 目前的最新版本是 2.1,我们假设 Eclipse 的主目录为 ECLIPSE_HOME,下载以后将其解压到 ECLIPSE_HOME/plugins 文件夹下面,这样在这个文件夹下面就多了一个com.objectlearn.jdt.j2ee 文件夹。

然后启动 Eclipse, 会自动出现 Customize Perspective 的对话框,如果没有出现的话,也可以通过菜单"Window->Customize Perspective"来显示这个对话框,如下图所示:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

展开 File->New,选择所有与 Lomboz 相关的选项;

展开 Window->Show View,选择 Lomboz J2EE View;

展开 Other,选择 Lomboz Actions

确认 OK

下面要进行 Lomboz 的配置:

首先,打开属性对话框,确保 Java->New Project 中的设置:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

接着在 Lomboz 属性中,确保如下设置:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

最后,设置服务器属性。

Lomboz 预先定义了一些常用的Java 服务器的设置,这些配置文件放在ECLIPSE_HOME/plugins/com.objectlearn.jdt.j2ee/servers 文件夹下面,你可以用文本编辑器手工修改(除非你所用的服务器不在 Lomboz 默认的服务器中,否则我不推荐你这么做),也可以在 Eclipse 的属性对话框中设置,设置的过程非常简单,如下图所示:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

记得每次修改以后,都要点击 Apply

上图是 Properties 标签下的设置,Classpath 标签下一般不需要做任何改动(注意:如果你没有听我文章开始部分的劝告,使用了 JBoss3.2.0 以上的版本,可能需要手工加入多了个 jar 包,这是体力活,有些麻烦。我不知道这是不是 JBoss 的问题,具体操作我在下面会提一下)。

通过以上三个步骤,就完成了 LombozJ2EE 开发的支持和 JBoss 的配置。你可以进入文章的第二部分"使用 Eclipse 开发 Web 应用"了。

注意事项:

a .如果服务器不在默认服务器之列;

ECLIPSE_HOME/plugins/com.objectlearn.jdt.j2ee/servers 文件夹下新建一个后缀名为 server 的文件,然后根据已有的 server 文件为模版,用文本编辑器编辑 server 文件。建立了一个新的 server 文件以后,也可以在 Lomboz 的属性页中进行相应的设置。

b . 如果使用了 JBoss3.2.0 版本。

打开 Window>Preferences>Lomboz>ServerDefinitions,选择你的服务器,然后选择 classpath 标签,将如下的 jar 包加入到 server library 中:

JBOSS_HOME\lib\concurrent.jar

 

JBOSS_HOME \lib\boss-system.jar

 

JBOSS_HOME \server\default\lib\jboss.jar

 

JBOSS_HOME \server\default\lib\jpl-pattern.jar

 

JBOSS_HOME \server\default\lib\jpl-util.jar

 

JBOSS_HOME \server\default\lib\jnpserver.jar

 

JBOSS_HOME \server\default\lib\jboss-transaction.jar

我的 JBoss320.server 文件中的全部内容在本文的最后部分呈现。


回页首

二、使用 Eclipse 开发 Web 应用

首先,打开 File->New->Lomboz J2EE Project,创建一个名为 TestJ2EEJ2EE Project

点击 Next,默认各种设置,点击 Next,进入下一个对话框,在 Targeted Server 中加入已经配置好的服务器,如下图:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

Web ModulesEJB Modules 中分别新建 Web 模块和 EJB 模块,在本例中,我们分别命名为 MyWebMyEJB,然后点击Finish。这样,一个 J2EE 项目的框架就自动生成了。

MyWeb 模块下面,自动生成了两个 jsp 文件:index.jsperror.jsp,以及 WEB-INF 文件下面的配置文件。我们可以在此基础上面添加自己的 jsp 文件和 servlet,然后 build project

Eclipse 的工具栏上点击 Lomboz J2EE project outliner 的按钮:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

这样,在 Eclipse 上就出现了 Lomboz J2EE View,如下图所示:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

由于我事先已经部署了另一个 Web 服务器:Tomcat,所以在 MyWeb 这个模块上面出现了它所绑定的这两个服务器,JBoss 3.0 All 旁边的红色标记表示它是默认的服务器。可以通过右击 Web 模块选择更改默认的服务器,如下图:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

选择好服务器以后,在 Lomboz J2EE View 中右键单击服务器,选择运行服务器,等服务器启动好以后,右键单击 Web 模块,选择 Deploy Module,这样就完成了 Web 模块在服务器上的部署。打开 IE 浏览器,键入 http://127.0.0.1:8080/MyWeb,就可以看到自己开发的 Web 应用了。

这里有一点需要说明,如果采用 Tomcat 作为 Web 服务器的话,如果 Web 模块需要重新部署,则须重新启动 Tomcat 服务器,JBoss 则不需要这么做。

注意事项:

如果从 Eclipse 中启动 JBoss 服务器的时候,遇到了这个问题:

 Error occurred during initialization of VM

 java/lang/NoClassDefFoundError: java/lang/Object

 

一般遇到这个问题,可能是由于 JRE 没有设置好,请在Eclipse 中的 Preference 对话框中,展开Java->Installed JREs,查看 JRE 是否设置好了;然后打开所开发的项目属性对话框,查看 Java Build Pathlibrary 中是否有 JRE System Library,没有的话,点击 Add Library,添加 JRE System Library


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)


回页首

三、使用 Eclipse 开发 EJB

在第二部分"使用 Eclipse 开发 Web 应用"中,我们已经在TestJ2EE 这个 J2EE 项目中添加了一个名为MyEJBEJB 模块。下面我们通过 Lomboz EJB Creation WizardMyEJB 模块中添加一个 Session Bean

点击 File->New->Lomboz EJB Creation Wizard,或者右击 MyEJB 模块,选择 New->Lomboz EJB Creation Wizard,显示出如下对话框:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

com.dino.testj2ee.myejb 这个包下面创建一个名为 MyEJBStateless Session Bean。完成以后,在 TestJ2EE 项目的 src 文件夹下面,出现了一个名为 MyEJBBean.java 的文件,右击这个文件,选择 New->Lomboz EJB Method Wizard,可以给这个 EJB 添加各种方法。我添加了一个 helloWorld 方法,返回一个 String 类型。如下图所示:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

然后,需要把 MyEJB 这个 Session Bean 添加到 MyEJB 这个模块上面:右击 MyEJB.java,选择 Lomboz J2EE->Add EJB to Module,选择 MyEJBOK

右击 MyEJB 模块,选择 LombozJ2EE->Generate EJB Classes,这样就在 ejbsrc 目录下面自动生成了下面几个文件:

MyEJBHome.java
MyEJBRome.java
MyEJBLocalHome.java
MyEJBLocal.java
MyEJBSession.java (MyEJBSession extends MyEJBBean)
MyEJBUtil.java

Build project 以后,自动将模块打包完毕。接着就可以按照部署 Web 模块的步骤来部署 EJB 模块了。

最后,我们建立一个应用程序来测试 EJB

通过 File->New->Lomboz EJB Test Client Wizard 打开一个对话框,按下图填写:


使用 <wbr>Eclipse <wbr>开发 <wbr>J2EE <wbr>应用(转)

完成以后,在 src 目录下面生成了 TestMyEJB.java,在其中的 testBean 方法中加入测试代码:

 System.out.println(myBean.helloWorld());

 

如果目前 JBoss 服务器已经启动,而且 MyEJB 模块已经部署的话,执行 TestMyEJB,就会在 Console 窗口上显示出:

 hehe, I can deploy EJB by Eclipse!

 


回页首

四、总结

通过以上的介绍,我们了解到,Lomboz 使 Eclipse 开发 J2EE 应用变得非常简便,而且 Eclipse, Lomboz, JBoss 这些工具都是免费和开放源码的项目,所以这样的组合对 Java 开发者来说更有吸引力。

对于开发复杂的 J2EE 应用来说,上面的介绍可能还不够全面,希望大家在做项目的过程中体会,再将总结出来的经验放到 developerWorks 上来分享。


回页首

附录:JBoss320.server

 <serverDefinition name="JBOSS 3.2"

     ejbModules="true" webModules="true" earModules="true">

 <property id="serverRootDirectory" label="Application Server Directory:"

     type="directory" default="D:/jboss-3.2.0" />

 <property id="serverAddress" label="Address:"

     type="string" default="127.0.0.1" />

 <property id="serverPort" label="Port:"

     type="string" default="8080" />

 <property id="classPathVariableName" label="Classpath Variable Name:"

     type="string" default="JBOSS32" />

 <property id="classPath" label="Classpath Variable:"

     type="directory" default="D:/jboss-3.2.0" />

   

 <serverHome>${serverRootDirectory}</serverHome>

 <webModulesDeployDirectory>${serverRootDirectory}/server/all/deploy

 </webModulesDeployDirectory>

 <ejbModulesDeployDirectory>${serverRootDirectory}/server/all/deploy

 </ejbModulesDeployDirectory>

 <earModulesDeployDirectory>${serverRootDirectory}/server/all/deploy

 </earModulesDeployDirectory>

 <jndiInitialContextFactory>org.jnp.interfaces.NamingContextFactory

 </jndiInitialContextFactory>

 <jndiProviderUrl>jnp://${serverAddress}:1099</jndiProviderUrl>

 <startClass>org.jboss.Main</startClass>

 <startWorkingDirectory>${serverRootDirectory}/bin

 </startWorkingDirectory>

 <startVmParameters></startVmParameters>

 <startProgramArguments>-c all</startProgramArguments>

 <stopClass>org.jboss.Shutdown</stopClass>

 <stopWorkingDirectory>${serverRootDirectory}/bin

 </stopWorkingDirectory>

 <stopVmParameters></stopVmParameters>

 <stopProgramArguments>${serverAddress} ${serverPort}

 </stopProgramArguments>

 <serverClassPath>

 <jar type="variable">JDK_TOOLS</jar>

 <jar type="variable">${classPathVariableName}/bin/run.jar

 </jar>

 <jar type="variable">${classPathVariableName}/bin/shutdown.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/jboss-j2ee.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/javax.servlet.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/commons-httpclient.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/concurrent.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/getopt.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/jboss-boot.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/jboss-common.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/jboss-jmx.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/jboss-system.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/jdom.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/log4j-boot.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/webdavlib.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/xercesImpl.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/xml-apis.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jnet.jar

 </jar>

 <jar type="variable">${classPathVariableName}/lib/gnu-regexp.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jboss.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jnpserver.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jpl-util.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jpl-pattern.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jsse.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jbossha.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jboss-jaas.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jts.jar

 </jar>

 <jar type="variable">

 ${classPathVariableName}/server/all/lib/jboss-transaction.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/javagroups-2.0.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jmxri.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jmxtools.jar

 </jar>

 <jar type="variable">${classPathVariableName}/server/all/lib/jbossmx.jar

 </jar>

 </serverClassPath>

 <clientClassPath>

 <jar type="variable">${classPathVariableName}/client/jboss-j2ee.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/jnp-client.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/jboss-client.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/jboss-common-client.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/jbosssx-client.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/log4j.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/jnet.jar

 </jar>

 <jar type="variable">${classPathVariableName}/client/jaas.jar

 </jar>

 </clientClassPath>

 </serverDefinition>



参考资料

  • www.eclipse.org Eclipse 的官方网站;
  • www.jboss.org JBoss 的官方网站;
  • www.objectlearn.com Lomboz 的网站,上面有关于 Lomboz 的教程。
  • Eclipse in Action: A Guide for Web Developers, by David Gallardo, Ed Burnette and Robert McGovern, Manning Publications. 一本介绍使用 Eclipse 开发的好书。
  • JBoss 3.0: Quick Start Guide, by JBoss Group. 一本关于 JBoss 入门的好书。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值