openfire github地址:https://github.com/igniterealtime/Openfire

1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp

2、把源代码解压出的openfire_src文件夹放至eclipse workplace(注意:若是变更了解压出来的文件名,则接下来所有用到文件名的地方都要作出相应更改,否则会报错!)

3、把openfire_src文件夹里的三个无用的html文件删除

4、打开eclipse,新建一个名为openfire_src的Java Project,然后finish

5、项目建好后如图所示,其中有几个目录报错,是由于缺少3个jar包:coherence.jar、coherence-work.jar、tangosol.jar

6、下载这几个jar包,然后复制到/openfire_src/build/lib目录下

下载地址:http://download.csdn.net/download/makeafish/7351065

7、选中3个新添加的jar包,点击右键,选择Build Path -> Add to Build Path,总之增加到build path。

8、把jar包编译后还是会有报错,如图,解决办法是直接找到java源文件SipCommRouter.java和SipManager.java ,使用eclipse的自动修复,把错误修复,一般是没有实现抽象方法和没有处理异常。 (我没有这个问题)

9、点击Window -> Show View -> Ant,在Ant中选择Add Buildfiles,将build目录下的build.xml选中,然后ok

10、把Java JDK的lib目录下的tools.jar包拷贝到 Java JRE的lib目录下 (我没这么做)

11、运行选中的文件 build.xml

12、运行成功后,刷新工程,目录多出两个文件夹

13、将target/lib目录下的所有jar包选中,单击右键,选择Build Path –> Add to Build Path(和步骤7相似)

14、选中项目,点击run -> run configurations

15、选择run configurations左边的Java Application,单击右键,选择New

16、选中Main选项卡,点击Browse选择openfire_src项目;单击Search选择ServerStarter - org.jivesoftware.openfire.starter,结果如下

17、选中Arguments选项卡,在VM arguments中填入

-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"

这个是用于eclipse执行java命令时传递的参数,这样openfire程序可以通过 System.getProperty(“openfireHome”)得到openfire的本地位置。

注意:这里的openfire_src换成你自己工程的名字。

18、选中Classpath选项卡,选中User Entries,点击右边的Advanced按钮

19、在弹出的框中选中Add Folders,选中src/i18n文件夹,点击ok

20、重复上一步骤把src/resources选中添加,结果如下:User Entries下多了两个文件夹

21、选中Common选项卡,将Debug和Run打钩,然后点击apply,再点击run

22、成功运行结果

我的是:

主要参考: http://blog.csdn.net/ares1201/article/details/7737872

http://li-bonan.blog.163.com/blog/static/135564770201211172228795/

http://xiao9.iteye.com/blog/1109390

http://my.oschina.net/u/1409622/blog/205603

参考上面的没有成功:参考下面的教程:

最近在用openfire开发ios通讯功能,需要开发一个推送插件,导入openfire3.9.3的源码一直报错很郁闷,以下是解决源码导入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包缺失了,将bouncycastle.jar 加入工程就好了,

移除后出现三个错误,没关系,我们一步步修复错误,\openfire_src\src\java报错,是因为有jar包,没有引进来,我们将其引进即可:

点击OK以后,我们发现\openfire_src\src\java上的错误已经没有了。

(这里麻烦的是,我这么做之后/openfire_src/src/java/org/jivesoftware/util/CertificateManager.java

依旧报错:3个错误

看到一个博主写的:

有这3个错误,第一个强制转换类型就行了,第二个改为:csr.toASN1Object(),因为不提供那个方法了,第三个直接放othernameGN,也就改成:  GeneralNames subjectAltNames = new GeneralNames(othernameGN);估计是构造方法不一样了吧!这三个的修改方式是我自己想出来的,并不能保证完全正确,如果你有更好的也可以选择使用;到目前为止,江山一片红的现象没有了!我看到有的导入方式和我的不太一样,还需要删除一些插件,这些我目前还不太了解源码所以没有选择!参考:http://www.2cto.com/os/201403/284316.html

\openfire_src\src\plugins\clustering\src\java报错,是因为缺少coherence.jar,coherence-work.jar,tangosol.jar这三个jar包,我们将复制到\openfire_src\src\plugins\clustering\lib目录下,然后将这三个jar包,加入构建路径:

下载地址:http://dl.iteye.com/topics/download/5ed3a613-212e-3bd1-9201-ebd4de176fd5

这时我们发现\openfire_src\src\plugins\clustering\src\java上的错误已经消失了,需要的包我会上传到附件

最后一个在\openfire_src\src\plugins\sip\src\java上的报错是因为 SipCommRouter.java和SipManager.java 这两个类没有实现抽象方法和完成异常处理,最简单的解决办法是利用Eclipse自动修复功能进行修复即可。现在我们发现我们的项目已经没有任何错误了。

接下面可以编译运行openfire,当然也可以下载相应系统的安装文件安装

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…  接下来的操作和上面一样了。

参考:http://blog.csdn.net/lovexieyuan520/article/details/37743433

更多:

openfire jdk开发文档:http://wenku.baidu.com/link?url=UFszwuCOltemrGodpbHyoFlDCABDlBH-HPcyNn_NhrJ1__SZOR9RfL_NZgsFAyQ5dLwB7nmIIzDVbVZqGkJFgVaVkJ6Crwu__xjnp-YmNRW

http://hi.baidu.com/derekwendy/item/2ad7cb13c0c87e15e3f9861f

http://www.micmiu.com/opensource/openfire/openfire-src-config/

http://www.cnblogs.com/jarrah/archive/2012/03/29/2423382.html

openfire开发的更多相关文章

  1. Android基于XMPP Smack openfire 开发的聊天室

    Android基于XMPP Smack openfire 开发的聊天室(一)[会议服务.聊天室列表.加入] http://blog.csdn.net/lnb333666/article/details ...

  2. Openfire开发广播服务接口,支持离线广播消息

    Openfire开发广播服务接口,支持离线广播消息 概要 最近公司要求做一个web端向所有移动端发送公告,所以考虑到即时性就用openfire做服务.不过为了减轻web端的工作量,我们开发一个简单的插 ...

  3. openfire开发环境(3.9.1)

    1.解压源码 2.把build/eclipse中的文件cp到源码跟目录,并修改文件名,前面增加"."号,变成eclipse工程. 3.导入eclipse, 把build/lib/, ...

  4. Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置

    原文:http://www.cnblogs.com/lixiaolun/archive/2013/12/07/3462780.html 1.下载源代码:http://www.igniterealtim ...

  5. Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置(eclipse)

    首先去官网把openfire的源码下下来: http://www.igniterealtime.org/downloads/source.jsp 1.下载后放到你的workspace当中,我的woek ...

  6. Openfire开发配置,Openfire源码配置,OpenFire二次开发配置

    1.下载源码:http://www.igniterealtime.org/downloads/source.jsp 2.把源码解压出的openfire_src目录放至eclipse workplace ...

  7. openfire 开发遇到的些问题

    openfire的 jid    账户名 + '@" + 你的域名      可是当你的账户名中 有大拼音的 时候  就会变成小写   比如     Test  ,  jid  =  tes ...

  8. Android IOS WebRTC 音视频开发总结(六三)-- 2016国内IM云服务行业分析

    本文主要国内IM云服务行业分析,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 谈到IM我们最先想到的是qq和微信 ...

  9. 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了

    开源一个Java Class实现Openfire登陆.推出.消息发送 N年前写的,希望对Openfire开发新手有帮助哦 import java.util.*; import java.io.*;   ...

随机推荐

  1. MAC 升级到10.10(OS X Yosemite)下apache+php的配置问题

    MAC升级到最新系统后 本地测试的站点不能正常运行,其原因是mac系统升级后 他的apache的版本也随之升级了版本 Server version: Apache/2.4.9 (Unix) Serve ...

  2. NOSQL的应用,Redis/Mongo

    NOSQL的应用,Redis/Mongo 1.心路历程 上年11月份来公司了,和另外一个同事一起,做了公司一个移动项目的微信公众号,然后为了推广微信公众号,策划那边需要我们做一些活动,包括抽奖,投票. ...

  3. 深入浅出C++引用(Reference)类型

    要点1:为反复使用的.冗长的变量名称定义一个简短的.易用的别名,从而简化了代码.通常,冗长的变量名称源于多层嵌套对象,例如类中定义嵌套类,类中定义其它类对象. //------ 未使用引用的程序片段, ...

  4. 如何解决Mac与iPhone之间handoff连接问题

    首先账户以及设备handoff开关问题不再赘述.主要是昨天发现的一个小技巧 当确认所有设备的iCloud账号统一.蓝牙打开.处在同一WiFi下的前提下,我的iPhone和Mac仍然handoff连接有 ...

  5. myeclipse trial expired[转]

    转自:http://blog.csdn.net/yuyuyuyuy/article/details/5878122 今天MyEclipse提示过期了,MyEclipse Trial Expired. ...

  6. dragsort拖动插件的使用

    <!DOCTYPE html><html><head> <title>DragSort Example</title> <meta c ...

  7. spoj 274

    离散化   枚举行  扫描横坐标 #include <iostream> #include <cstdio> #include <cstring> #include ...

  8. centos在yum install报错:Another app is currently holding the yum lock解决方法

    centos在yum install报错:Another app is currently holding the yum lock,这个问题可能是很多的新手经常遇到问题,之前也有人问我,包括本人在刚 ...

  9. linux上部署应用

    1.编写traffic.sh 引入相关的jar包及java环境路径 2.crontab -e 加入: */10 * * * * cd /opt/sys/traffic_version/bin & ...

  10. 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)

    转自  http://tech-wonderland.net/blog/summary-of-ksum-problems.html 前言: 做过leetcode的人都知道, 里面有2sum, 3sum ...