最近在做基于android的即时通讯软件,晚上也看了不少方法,曾想尝试用百度云推送来简单实现。无奈现在百度云也开始收费了,遂只好自己搭建服务器了。后来了解到,基于XMPP通讯协议确实有这么一款免费开源服务武器——openfire.所以就抱着试试的心态来搞搭建测试了。
由于自己还有其他拓展功能,因此想做一下二次开发,就把源码在本地部署了下,期间遇到不少问题,记录下来以供参考。
1.openfire的安装
这个算是最基础的啦,去官网下载openfire,按步骤安装,注意帐号密码啥的。这些有很多博客里都有介绍,就不一一说明了。贴出一个地址,仅供参考。其他系统也类似。
2.openfire_src源代码的部署和二次开发
这个是本文的重点,我个人搭建的时候消费了点功夫。不过说实话,看明白了其实很简单。但是盲目就开始搭建还是会有点头疼。先贴一下网上看到的两个搭建帖子
都介绍得很详细,但是我结合着看就弄混淆了。鄙视一下自己。我这里所说
部署和一些常见问题的解决
。
1.下载openfire_src源代码
openfire_src(进官网,点击download->source->openfire_src.zip)
2.解压
把源代码解压出的openfire_src文件夹放至eclipse workplace(注意:若是变更了解压出来的文件名,则接下来所有用到文件名的地方都要作出相应更改,否则会报错!)
3.把openfire_src文件夹里的三个无用的html文件删除
4.导入项目工程
刚开始我挺费了点功夫,按照第一篇说的来,发现有很多问题。按第二个篇的话,没发现怎么到工程项目。后来才发现没那么麻烦。把解压的项目放进你的工作空间,然后在eclipse中新建java project,注意项目名跟刚刚考进去的一样(openfire_src),然后他自动就会在当前文件夹下建项目,并把你刚刚拷贝过去的文件包含进去。
打开eclipse,新建一个名为openfire_src的Java Project,然后finish
注:此处的默认路径为openfire_src文件夹的绝对路径
5.导入jar包
项目建好后如图所示,其中有几个目录报错,通常是由于缺少3个jar包:coherence.jar、coherence-work.jar、tangosol.jar
如果还有,则 根据自己的提示下载自己需要的包,实在不行就全部下下来都导入到项目当中去.
这时候还有可能会出现以下错误
(1)把jar包编译后还是会有报错,
一种错误可能是没有实现继承父类的抽象方法,解决办法是使用自动修复,即add unimpl......添加抽象方法;
还有一种错误是没有处理异常,同样可以自动修复..
(2)包里边存在 ..类已经被定义(class has already difined)
解决方法,直接删除该类即可。(在其他类里边已经定义有该函数和方法)