Openfire3.8.2在eclipse中Debug方式启动最简单的方式

一、前言

最近打算研究一下Openfire,于是打算最好能够以Debug方式启动Openfire的Server,到网上一搜,还果真早到官网的一篇文章来:

http://community.igniterealtime.org/docs/DOC-1020

网上很多朋友按照这个教程去搭建,有的说文章有瑕疵的地方,姑且不说瑕疵,就这很长的步骤令人厌恶。本来我想按照这个教程去做,但是,单使用
Eclpse
SVN下载令人崩溃,一直显示进度为0%,后来换了TortoiseSVN好一些,下载了两次,每次都花数小时,第一次下到35MB的时候无法下载,最后
下载失败,第二次下载是在晚上,好一些,最后下载成功了,但速度很慢整整下载了4,5个小时(是不是我们晚上的时候,美国人正在上班,这个时候他们会把服
务器弄的更稳定一些?:))

也不去责备官网的筒子们为什么不把项目搞成Maven管理,因为搜了一下论坛,已经发现了一个回复:http://community.igniterealtime.org/message/228657#228657,看来关于Maven的抱怨,筒子们也注意到了,那就让我们耐心等待吧!

但是,醪糟归醪糟,事情还是要进行,再几经尝试之下,我先下载了一个window版的安装版,尝试了下服务器安装的过程。当显示如下消息时,说明安装成功。

  1. Openfire 3.8.2 [Jul 28, 2013 4:44:26 PM]
  2. Admin console listening at http://127.0.0.1:9090

可以通过浏览器访问http://127.0.0.1:9090这个地址,它是一个配置向导,都很简单,还可以选择中文语言,唯一要说的是,安装
的时候需要指定一个数据库,你可以连接一个Mysql数据库,当然你也不用安装数据库而使用默认选项(一个嵌入式数据库),我还是建议你安装一个真正的数
据库,因为具我个人对嵌入式数据库的了解,性能一般较低,debug过程中查看数据库数据也不大方便!

如果想了解Openfire的设计,这篇文章不错:http://www.bitiliu.com/archives/143

二、配置步骤

注意:配置过程需要使用Eclipse、Ant,建议你用Eclipse JavaEE版,这个版本带有Ant。你可以到Eclipse官网去下载这个JavaEE版本,速度很快,有北京镜像。

1、下载openfire_src_3_8_2.zip到本地磁盘

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

2、解压openfire_src_3_8_2.zip到你的当前的Eclipse workspace目录

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

3、启动Eclipse,建立一个名为“openfire_src”的“Java Project”。注意:一定要与workspace里解压的源码文件夹名称相同,建立完后,源码文件夹变化为如下:

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

4、这时候eclipse视图如下,只保留src/java,其他的从build path移除掉,加入scr/i18n、src/resources/jar目录到源码路径

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

5、直接执行build.xml进行编译,编译成功后,会新产出work、target两个目录

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

6、新建一个"Run Configuration",并对VM参数进行配置,如下图所示

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

7、使用刚刚的配置Bebug执行org.jivesoftware.openfire.starter.ServerStarter类

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

8、出现如下信息则大功告成!

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

补充一点:

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

转载自http://redhacker.iteye.com/blog/1914619

上一篇:Python 2.7 学习笔记 访问mysql数据库


下一篇:TCP/IP协议族各层的作用