将 openfire 源码作为java项目导入eclipse调试_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 将 openfire 源码作为java项目导入eclipse调试

将 openfire 源码作为java项目导入eclipse调试

 2011/8/10 17:20:54  bluky999  http://nodex.iteye.com  我要评论(0)
  • 摘要:将openfire源码作为java项目导入eclipse调试背景:-笔者需要研究下XMPP协议及openfire源码,项目需求是构建IM系统,需要自己定协议,基于openfire开发。-在将openfire源码导入eclipse时遇到问题,查看网络上别人的经验,并多次尝试才得以解决。-这里分享自己的经验,以方便大家短时间内开始调试openfire,避免不必要的麻烦。之前他人的经验分享:http://www.cnblogs.com/eafy/archive/2009/02/21/1395559
  • 标签:源码 Eclipse Java 项目

?

将 openfire 源码作为java项目导入eclipse调试?

?

?

背景:

- 笔者需要研究下XMPP协议及openfire源码,项目需求是构建IM系统,需要自己定协议,基于openfire开发。

- 在将openfire源码导入eclipse时遇到问题,查看网络上别人的经验,并多次尝试才得以解决。

- 这里分享自己的经验,以方便大家短时间内开始调试openfire,避免不必要的麻烦。

?

之前他人的经验分享:

http://www.cnblogs.com/eafy/archive/2009/02/21/1395559.html

http://hi.baidu.com/mykingbull/blog/item/788b5b347b44044b251f148c.html

http://hi.baidu.com/liangwenfa/blog/item/91134816834c694c21a4e939.html

http://hi.baidu.com/keexoo/blog/item/96c491b16ac36d5209230296.html

http://hi.baidu.com/liangwenfa/blog/item/2201320115e29d087aec2caf.html

?

以上经验,大多是基于openfire3.5或3.6的;一些是基于ant构建的,麻烦无比;笔者则只有一步用了ant,尽量简单地解决问题。

?

?

说明:

- openfire是一个是实现xmpp协议的开源服务器端程序,可用来构建IM系统及聊天室等应用。

- 一般下载openfire分发包即可部署程序运行;但本文还将下载其源码,以导入到eclipse做调试等用。

?

准备:

- openfire 3.7.0 及其源码下载: ?http://www.igniterealtime.org/downloads/index.jsp?

- eclipse indigo?

- openfire分发包及源码是使用ant构建的,所以本地开发环境最好已经安装ant(可在shell或command下执行ant命令)。

?

?

步骤:

1、下载openfire_3_7_0.exe(openfire_3_7_0.tar.gz) 及源码 openfire_src_3_7_0.tar.gz ; 可直接下载,也可svn检出;

? ?将openfire安装在常用的程序安装目录,确认可正常启动关闭即可;

? ?将源码解压待用,比如放在 d:\openfire_src\。

?

2、在打开的eclipse工作区新建java project,命名叫 openfire;除了默认的源码src外,再设置一个默认输出目录的classes (在项目上右键-属性-编译路径-源码);同时取消src的源码目录设置(从source列表里remove);

? ?我们将此项目在文件系统的完整路径记作 $home (即....../workspace/openfire/);

?

3、把 d:\openfire_src\src 中的所有内容COPY到 $home/src 下(在文件系统中进行);

? ?在shell或者command下进入 d:\openfire_src\build\ ,运行ant,看到编译成功后,将 d:\openfire_src\target\openfire\下的所有内容拷贝到 $home/src 覆盖(重复的覆盖,不重复的继续保留);

?

4、设置以下4个源码目录: $home\src\java, $home\src\i18n, $home\src\resource\java, $home\src\web\WEB-INF\classes ;可选地也可设置测试代码 $home\test\java 到源码目录;

?

5、尽管在$home\src下已经有了lib目录,而且有jar存在,但显然不是所有;因此个人建议忽略此lib目录,将 d:\openfire_src\build\lib\下的所有jar(含子目录)作为外部jar添加到项目的classpath;

?

6、修改 $home\src\web\WEB-INF\classes\openfire_init.xml文件为(用真实内容替换$home):

<openfireHome>$home\src</openfireHome>

?

7、修改ServerStarter类(org.jivesoftware.openfire.starter.ServerStarter)中的常量值:

?

private static final String DIR_PREFIX = "$home/src"; ?// 我们新增加的一个BASE路径常量

?

private static final String DEFAULT_LIB_DIR = DIR_PREFIX + "/lib"; ?// 原有的常量,稍作修改

private static final String DEFAULT_ADMIN_LIB_DIR = DIR_PREFIX + "/plugins/admin/webapp/WEB-INF/lib"; ?// 原有的常量,稍作修改

?

?

?

错误排解:

1、 最可能经常遇到的错误之一就是 ClassNotFound ,此时一般都是因为项目的source啊,classpath啊,jar等没有设置正确;

? ? 可以先检查eclipse的markers视图有无错误,以及项目的classes目录下是否有内容生成;

?

2、也有可能在刚修改完之后报错,请clean项目,并显示编译,然后刷新项目尤其是classes目录;之后再次尝试;

?

?

后记:

当你看到以下内容时,说明基本OK:

?

Openfire 3.7.0 [Aug 10, 2011 3:32:36 PM]

Admin console listening at http://127.0.0.1:9090

?

当你访问以上URL,看到openfire的安装设置界面时(http://127.0.0.1:9090/setup/index.jsp),你只需要创建一个数据库然后设置完成,就可以开始体验XMPP了,但更重要的是调试openfire。

?

祝你好运。

发表评论
用户名: 匿名