Eclipse是一个非常优秀的集成开发环境
这个在IBM支持下的开放源码项目经过一段时期的发展完善
已经为广大Java开发者所熟悉
Eclipse的出现
为Java开发者提供了免费使用强大的Java IDE的机会
通过集成大量的plugin
Eclipse的功能可以不断扩展
以支持各种不同的应用
Lomboz是一个免费的Eclipse plugin它将很多Java应用服务器JEE组件和Web应用开发集成到Eclipse中可以帮助Java开发者使用Eclipse建立测试部署JEE应用
JBoss是一个开放源码功能强大的Java应用服务器也是目前最受Java开发者欢迎的Java应用服务器被Java World的编辑们评为年的最佳应用服务器年到目前为止的下载量已经超过了一百五十万次
一下载安装和配置
. Eclipse的下载和安装
首先需要安装JDK可以到Sun的网站上去下载最新版本并安装
然后到去下载Eclipse的最新版本目前的最新版本是下载以后解压到自己想要的目录中比如D:\Eclipse直接运行eclipseexe第一次运行的时候会自动寻找JDK并完成相应的配置然后就进入了Eclipse的主界面关于Eclipse的基本使用方法developerWorksEclipse的网站以及Eclipse的随机文档上都有详细地介绍这里不详细描述了
. Jboss的下载安装
JBoss目前的最新版本是不过我觉得这个版本有一些问题启动服务器的时候会有一些jar包找不到导致WARN和ERROR的发生所以我推荐下载也可以下载集成了Tomcat 的JBoss 版本
下载后解压我们假设JBOSS_HOME为JBoss的主目录执行JBOSS_HOME/bin/runbat就启动了JBoss服务器一般会在分钟左右启动完毕
. Lomboz的下载安装和配置
Lomboz目前的最新版本是我们假设Eclipse的主目录为ECLIPSE_HOME下载以后将其解压到ECLIPSE_HOME/plugins文件夹下面这样在这个文件夹下面就多了一个comobjectlearnjdtjee文件夹
然后启动Eclipse 会自动出现Customize Perspective的对话框如果没有出现的话也可以通过菜单Window>Customize Perspective来显示这个对话框如下图所示
展开File>New选择所有与Lomboz相关的选项
展开Window>Show View选择Lomboz JEE View;
展开Other选择Lomboz Actions
确认OK
下面要进行Lomboz的配置
首先打开属性对话框确保Java>New Project中的设置
接着在Lomboz属性中确保如下设置
最后设置服务器属性
Lomboz预先定义了一些常用的Java服务器的设置这些配置文件放在ECLIPSE_HOME/plugins/comobjectlearnjdtjee/servers 文件夹下面你可以用文本编辑器手工修改(除非你所用的服务器不在Lomboz默认的服务器中否则我不推荐你这么做)也可以在Eclipse的属性对话框中设置设置的过程非常简单如下图所示
记得每次修改以后都要点击Apply
上图是Properties标签下的设置Classpath标签下一般不需要做任何改动(注意如果你没有听我文章开始部分的劝告使用了JBoss以上的版本可能需要手工加入多了个jar包这是体力活有些麻烦我不知道这是不是JBoss的问题具体操作我在下面会提一下)
通过以上三个步骤就完成了Lomboz对JEE开发的支持和JBoss的配置你可以进入文章的第二部分使用Eclipse开发Web应用了
注意事项
a.如果服务器不在默认服务器之列
在ECLIPSE_HOME/plugins/comobjectlearnjdtjee/servers 文件夹下新建一个后缀名为server的文件然后根据已有的server文件为模版用文本编辑器编辑server文件建立了一个新的server文件以后也可以在Lomboz的属性页中进行相应的设置
b. 如果使用了JBoss版本
打开Window>Preferences>Lomboz>ServerDefinitions选择你的服务器然后选择classpath标签将如下的jar包加入到server library中
JBOSS_HOME\lib\concurrentjar JBOSS_HOME \lib\bosssystemjarJBOSS_HOME \server\default\lib\jbossjar JBOSS_HOME \server\default\lib\jplpatternjar JBOSS_HOME \server\default\lib\jplutiljar JBOSS_HOME \server\default\lib\jnpserverjar JBOSS_HOME \server\default\lib\jbosstransactionjar 我的JBossserver文件中的全部内容在本文的最后部分呈现
二使用Eclipse开发Web应用
首先打开File>New>Lomboz JEE Project创建一个名为TestJEE的JEE Project
点击Next默认各种设置点击Next进入下一个对话框在Targeted Server中加入已经配置好的服务器如下图
在Web Modules和EJB Modules中分别新建Web模块和EJB模块在本例中我们分别命名为MyWeb和MyEJB然后点击Finish这样一个JEE项目的框架就自动生成了
在MyWeb模块下面自动生成了两个jsp文件indexjsp和errorjsp以及WEBINF文件下面的配置文件我们可以在此基础上面添加自己的jsp文件和servlet然后build project
在Eclipse的工具栏上点击Lomboz JEE project outliner的按钮
这样在Eclipse上就出现了Lomboz JEE View如下图所示
由于我事先已经部署了另一个Web服务器Tomcat所以在MyWeb这个模块上面出现了它所绑定的这两个服务器JBoss All 旁边的红色标记表示它是默认的服务器可以通过右击Web模块选择更改默认的服务器如下图
选择好服务器以后在Lomboz JEE View中右键单击服务器选择运行服务器等服务器启动好以后右键单击Web模块选择Deploy Module这样就完成了Web模块在服务器上的部署打开IE浏览器键入就可以看到自己开发的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 Path的library中是否有JRE System Library没有的话点击Add Library添加JRE System Library
三使用Eclipse开发EJB
在第二部分使用Eclipse开发Web应用中我们已经在TestJEE这个JEE项目中添加了一个名为MyEJB的EJB模块下面我们通过Lomboz EJB Creation Wizard向MyEJB模块中添加一个Session Bean
点击File>New>Lomboz EJB Creation Wizard或者右击MyEJB模块选择New>Lomboz EJB Creation Wizard显示出如下对话框
在comdinotestjeemyejb这个包下面创建一个名为MyEJB的Stateless Session Bean完成以后在TestJEE项目的src文件夹下面出现了一个名为MyEJBBeanjava的文件右击这个文件选择New>Lomboz EJB Method Wizard可以给这个EJB添加各种方法我添加了一个helloWorld方法返回一个String类型如下图所示
然后需要把MyEJB这个Session Bean添加到MyEJB这个模块上面右击MyEJBjava选择Lomboz JEE…>Add EJB to Module选择MyEJBOK
右击MyEJB模块选择LombozJEE…>Generate EJB Classes这样就在ejbsrc目录下面自动生成了下面几个文件
MyEJBHomejavaMyEJBRomejavaMyEJBLocalHomejavaMyEJBLocaljavaMyEJBSessionjava (MyEJBSession extends MyEJBBean)MyEJBUtiljava Build project以后自动将模块打包完毕接着就可以按照部署Web模块的步骤来部署EJB模块了最后我们建立一个应用程序来测试EJB通过File>New>Lomboz EJB Test Client Wizard打开一个对话框按下图填写
完成以后在src目录下面生成了TestMyEJBjava在其中的testBean方法中加入测试代码
Systemoutprintln(myBeanhelloWorld()); 如果目前JBoss服务器已经启动而且MyEJB模块已经部署的话执行TestMyEJB就会在Console窗口上显示出
hehe I can deploy EJB by Eclipse! 附录JBossserver
ejbModules=true webModules=true earmodules=true> type=directory default=D:/jboss /> type=string default= /> type=string default= /> type=string default=JBOSS /> type=directory default=D:/jboss /> ${serverRootDirectory} ${serverRootDirectory}/server/all/deploy ${serverRootDirectory}/server/all/deploy ${serverRootDirectory}/server/all/deploy orgjnpinterfacesNamingContextFactory jnp://${serverAddress}: orgjbossMain ${serverRootDirectory}/bin c all orgjbossShutdown ${serverRootDirectory}/bin ${serverAddress} ${serverPort} JDK_TOOLS ${classPathVariableName}/bin/runjar ${classPathVariableName}/bin/shutdownjar ${classPathVariableName}/client/jbossjeejar ${classPathVariableName}/server/all/lib/javaxservletjar ${classPathVariableName}/lib/commons ${classPathVariableName}/lib/concurrentjar ${classPathVariableName}/lib/getoptjar ${classPathVariableName}/lib/jbossbootjar ${classPathVariableName}/lib/jbosscommonjar ${classPathVariableName}/lib/jbossjmxjar ${classPathVariableName}/lib/jbosssystemjar ${classPathVariableName}/lib/jdomjar ${classPathVariableName}/lib/logjbootjar ${classPathVariableName}/lib/webdavlibjar ${classPathVariableName}/lib/xercesImpljar ${classPathVariableName}/lib/xmlapisjar ${classPathVariableName}/server/all/lib/jnetjar ${classPathVariableName}/lib/gnuregexpjar ${classPathVariableName}/server/all/lib/jbossjar ${classPathVariableName}/server/all/lib/jnpserverjar ${classPathVariableName}/server/all/lib/jplutiljar ${classPathVariableName}/server/all/lib/jplpatternjar ${classPathVariableName}/server/all/lib/jssejar ${classPathVariableName}/server/all/lib/jbosshajar ${classPathVariableName}/server/all/lib/jbossjaasjar ${classPathVariableName}/server/all/lib/jtsjar ${classPathVariableName}/server/all/lib/jbosstransactionjar ${classPathVariableName}/server/all/lib/javagroupsjar ${classPathVariableName}/server/all/lib/jmxrijar ${classPathVariableName}/server/all/lib/jmxtoolsjar ${classPathVariableName}/server/all/lib/jbossmxjar ${classPathVariableName}/client/jbossjeejar ${classPathVariableName}/client/jnpclientjar ${classPathVariableName}/client/jbossclientjar ${classPathVariableName}/client/jbosscommonclientjar ${classPathVariableName}/client/jbosssxclientjar ${classPathVariableName}/client/logjjar ${classPathVariableName}/client/jnetjar ${classPathVariableName}/client/jaasjar