转载自:http://blog.csdn.net/StillCity/article/details/16988317
注意二次开发,可能导致之前用openfire.dmg安装的服务器冲突。某些端口被占用的情况出现。
最近新搞了openfire 从网上找了很多源码部署的相关文章但都是大同小异,拷贝加修改,我如是按照各个文章版本部署目前最新的3.8.2版本,无一例外,各种报错,头疼死我也,一次次失败,我TMD就想为啥官方没文档,一气之下 有了本作。
如下是成功案例:
1、准备:安装jdk就不用说了把。网上多的是这里就不赘述了。
a.源码下载:【官网】http://www.igniterealtime.org/downloads/source.jsp
选择openfire下载;
b . eclipse开发工具我的是3.5.2 版本,
2 开始部署:
首先打开eclipse将openfire源码解压到eclipse的workspace 目录下 或者选择新的workspace
2
选择 openfire源码的上级目录(即下图的workspace目录)点击确定(我的是已经拷贝到workspace目录下的)
然后新建一个java项目 项目名与源码文件名必须一样 eclipse会自动加载源码项目
然后会得到如图所示的界面
这个地方缺少两个jar包 coherence.jar , tangosol.jar 网上也有说少三个的 另外一个是 coherence-work.jar
这三个jar包的下载地址是 免积分的 免积分才爽快 :http://download.csdn.net/detail/stillcity/6620479
将coherence.jar , tangosol.jar拷贝到build目录下的lib目录下 或者随便建个其他目录放进去
选中两个jar包 右击添加到buildpath
稍等片刻 eclipse要重建工作空间 完成后发现还有错误 怎么办?
来 这么干。
先看第二个图:
打开两个错误类 后会发现
这两个错误相同都是没有实现所有的抽象方法
鼠标点击一下 Add unimplemented methods 即可 另外SipManager类中还需要捕获一个异常
这样就 解决了这个问题
然后还有另一个 报了很多错的问题:
可以看到这两个目录结构相同的资源包 大家把上面红框的删掉就可以了,下面就不报红了。
到这里大部分工作就完了 这块累了我老半天了。
第三步:选择菜单栏 window->Show View ->Ant
点开右击Openfire XMPP Server 选择 openfire[default] 右击
刷新eclipse项目多出两个文件夹 work 和target
选中Arguments选项卡,在VM arguments中填入
-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"
注意不要丢了前面一个小横线 如果你的项目名不是openfire_src 的话 要换成你的项目名
即 :-DopenfireHome="${workspace_loc:【项目名】}/target/openfire"
然后选择classpath选项卡 选中User-Entries --> 选择右侧的Advanced...-->选择Add Folder
这篇文章向大家介绍一下,如何把openfire3.9.3源码导入eclipse中,编译并启动的详细过程。
首先得感谢这篇文章的作者,http://www.micmiu.com/opensource/openfire/openfire-src-config/,正是在这篇文章的帮助之下,我成功将openfire导入eclipse,本文大部分内容也是那篇文章的,我冠以原创之名,是为了留个笔记和在新版中出现的问题给大家一点帮助,毕竟我也花了不少的时间,希望不会被说成侵权。
入正题,看到这篇文章的的网友应该已经安装了jdk,eclipse,我就不在安装这些开发工具上赘述了,附载一下openfire的下载地址:http://www.igniterealtime.org/downloads/index.jsp。
1、下载源码openfire_src_3_9_3.zip,目前最新的版本是3.9.3
2、把下载好的openfire_src_3_9_3.zip解压到工作空间,结构和目录如下:
3、把openfire_src\build\eclipse目录下面的settings、classpath、project全部复制到openfire_src\ 目录下,然后把openfire_src\classpth、openfire_src\project、openfire_src\settings修改成Eclipse工程配置文件格式,重命名为在每个原有的名字上加上一个点,即.classpth、.project、.settings。注意:在windows下面不能直接重命名,需要在dos下面操作,即进入相应的目录执行,rename classpth .classpth即可,其它两个文件执行一样的操作:
4、然后打开Eclipse,选择 File –> Import… –> Existing Projects into Workspace 选择F:\workspace\openfire_src 导入即可:
导入后目录结构如下:
大家会发现自己这个项目上出现了一个感叹号,进入构建路径,会发现:
这说明这个jar包缺失了,选中这个文件,然后点击右边的Remove按钮,将其移除,当然,我们也可以去网上下载一个,点击右边的Add JARs...将其加上,不过我没加也没出现问题,可能是某些插件需要这个jar包,现在不管他了。
移除后出现三个错误,没关系,我们一步步修复错误,\openfire_src\src\java报错,是因为有jar包,没有引进来,我们将其引进即可:
注意:一次只能引用一个,所以需要操作四次,才行。点击OK以后,我们发现\openfire_src\src\java上的错误已经没有了。\openfire_src\src\plugins\clustering\src\java报错,是因为缺少coherence.jar,coherence-work.jar,tangosol.jar这三个jar包,我们将复制到\openfire_src\src\plugins\clustering\lib目录下,然后将这三个jar包,加入构建路径:
这时我们发现\openfire_src\src\plugins\clustering\src\java上的错误已经消失了,这里我提供一下这三个jar包的下载地址,http://download.csdn.net/detail/lovexieyuan520/7630845,当然,你也可以去其它地方下载。
最后一个在\openfire_src\src\plugins\sip\src\java上的报错是因为 SipCommRouter.java和SipManager.java 这两个类没有实现抽象方法和完成异常处理,最简单的解决办法是利用Eclipse自动修复功能进行修复即可。现在我们发现我们的项目已经没有任何错误了。
5、ANT编译项目
Eclipse已经集成了Ant,所以我们只需要在 /openfire_src/build/build.xml 文件右击,选择Run As –> Ant Build 即可完成编译,编程成功后,会在/openfire_src/的跟目录下生成两个新的文件夹:target 和 work 。
6、运行Openfire项目
①、在Build Path配置中把 /openfire_src/src/i18n 、/openfire_src/src/resources/jar 、/openfire_src/build/lib/dist 文件夹添加到 Source 中,如图:
②配置启动参数
选择Run –> Run Configurations… 左边的Java Application,单击右键,选择 New:
把默认name:New_configuration 修改成:ServerStarter。
选中Main选项卡,点击Browse按钮选择 openfire_src 项目;单击Search 按钮输入:ServerStarter 自动过滤后选择:ServerStarter – org.jivesoftware.openfire.starter:
选中Arguments选项卡,在VM arguments中填入:
-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"
注意:项目路径 ${workspace_loc:openfire_src}
选中Common选项卡,将Debug和Run打钩(方便之后快速启动),然后点击apply,再点击run:
③运行后控制台日志如下:
④浏览器中输入地址: http://127.0.0.1:9090 回车:
看到上述界面表示Openfire的源码配置、导入、编译、启动已经圆满成功了。
终于完成了,希望对大家有帮助,下一篇,我将介绍怎样在Openfire中开发插件