码迷,mamicode.com
首页 > 其他好文 > 详细

将openfire源码部署到IDEA中

时间:2016-07-21 15:06:44      阅读:513      评论:0      收藏:0      [点我收藏+]

标签:

最近研究openfire即时通讯服务器,但是过程相当不顺利,将源码部署到idea上,在网上海量搜索,加群等弄了近3天的时间才弄好,也以此记录一下过程,和常见的问题,希望这篇文章能让研究openfire的筒子们少走一些弯路,毕竟idea有一点点不是很喜欢openfire。

环境说明:windows7+IntelliJ IDEA 2016+openfire 4.0.2+JDK1.8

一、解压openfire源码,解压后的文件夹名称可根据个人喜好修改,我的结构是这样的,如图:

技术分享

二、使用idea导入源码

2.1.打开idea,选择import project

技术分享技术分享

2.2.选择刚刚的源码目录进行导入

技术分享技术分享

2.3.选择根据源码创建项目

技术分享技术分享

2.4.然后一路无脑next,直到完成,网上很多人说,需要去掉rayo和monitoring的插件,不然后面编译会有问题,但这其实只是知其然不知其所以然的表现,这里不用去掉,后面我会进行说明,至此,源码导入完成,如图:

技术分享技术分享

三、开始进行相关设置,和中途遇到的问题说明及解决方法

3.1,首先使用ant在源码中打开build.xml文件,并进行构建:

技术分享


3.2完成以后,可以点击过滤按钮(过滤不需要的ant构建),使ant结构更清晰一点:

技术分享技术分享

 3.3.然后点击run

技术分享 技术分享

3.4这时可能会出现第一个问题:找不到JDK

技术分享技术分享

3.5解决方法 :打开Project Structure,默认快捷键:Ctrl+Shift+Alt+S

添加JDK,我安装的是JDK1.8,但是环境使用1.7,输出目录使用默认的/out目录,老的项目建议使用1.5-1.7的JDK,1.8JDK的很多新特性容易导致很多问题,如图:

技术分享技术分享

配置好后,再进行ant编译,即3.3

3.6编译完成后,进行应用程序配置,说明:openfire虽然是一个web程序,但本身是其实一个application程序,只是内部使用jetty容器来实现的。

操作如下:

技术分享技术分享

技术分享技术分享

技术分享

说明:VM Options下配置的openfire源码下的target目录,是源码经过Ant编译之后才会产生的目录,如果没有进行Ant编译,则不会出现这个目录

3.7配置完成后,启动:

技术分享技术分享

然后,问题来了,一个一个解决:

第一个问题:

技术分享

这是由于tinder.jar包冲突导致,解决方法,删除rayo插件下的tinder.jar包,位于:src/plugins/rayo/lib中,这应该就是网上说开始导入时,去掉rayo这个插件的原因。

技术分享技术分享

删除后再进行启动:可能会出现如下错误:

技术分享技术分享

这是由于openfire本身没有带ant.jar包,导致,而idea也不会像eclipse一样自动找ant.jar包,所以我们需要手动导入,解决方法如下:

ant.jar包,去网上下载一个,或直接使用idea自带的ant.jar包,如:

技术分享技术分享

将ant.jar放到openfire的lib/ant文件夹中,并引用

技术分享技术分享

技术分享技术分享

顺便清理一下tinder.jar的引用

技术分享

并将openfire引用ant依赖

技术分享

技术分享技术分享

完成之后,再启动,会出现一个空指针异常(这个异常目前还不知道如何解决,但不影响使用,后面有时间再慢慢研究吧),但是监听程序启动正常,于是进行访问但出现这样的错误:

技术分享

技术分享


这也是由于rayo插件下的javax.el-api-2.2.4.jar包冲突引起(PS:好想念maven),删掉这个包,同时清理依赖:

技术分享技术分享


技术分享技术分享

删掉之后,再启动,访问:出现这样的错误:

技术分享技术分享

这是配置文件问题,解决方法为:

将openfire中的i18n中的所有文件:D:\develop\workspace_idea\openfire\resources\i18n

和admin-sidebar.xml文件:D:\develop\workspace_idea\openfire\src\resources\jar\admin-sidebar.xml

把这些文件全部复制到这里

技术分享技术分享


然后再进行启动,访问成功!至此,源码部署工作完成,如图:

技术分享技术分享

最后存在的一个问题,当部署成功之后,启动依然出现如下 空指针异常,这个异常目前也没造成什么影响,但是具体产生的原因和解决方法,希望有研究openfire的大神们能指导一下

技术分享

以上部署过程,个人亲测通过,但不保证所有人都可以部署成功,毕竟不同的环境,结果可能大不同!

希望这篇文章能帮助到大家



将openfire源码部署到IDEA中

标签:

原文地址:http://blog.csdn.net/l139955/article/details/51981671

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!