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. 你的数据根本不够大,别老扯什么Hadoop了

    本文原名"Don't use Hadoop when your data isn't that big ",出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯 ...

  2. c位段

    假如程序表示四盏灯的开关状态灯只有开或关两种状态所以用1和0就可以表示为了节省内存就用一个二进制位表示一盏灯这里就定义位域用 a b c d 各表示一盏 这里定义时注意选用无符号类型位域允许用各种格式 ...

  3. 【Node.app】Node.js for iOS

    Node.app 是用于 iOS 开发的 Node.js 解释器,它允许最大的代码重用和快速创新,占用资源很少,为您的移动应用程序提供 Node.js 兼容的 JavaScript API.你的客户甚 ...

  4. UIViewController没有随着设备一起旋转的原因

    对于iPhone app,UIViewController类提供了基本的视图管理模式.当设备改变方向的时候view controller的视图会自动随之旋转的.如果视图和子视图的autoresizin ...

  5. startDiscovery() and startLeScan().

    You have to start a scan for Classic Bluetooth devices with startDiscovery() and a scan for Bluetoot ...

  6. 高效开发Android App的10个建议(转)

    假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗 电或者内存占用 ...

  7. 设置DIV隐藏与显示,表格滑动条

    问题描述:         现在希望使用JS设置DIV块的显示与隐藏,当某一个事件触发是,自动显示DIV块,显示表格数据,但是要求表格显示滑动条 问题解决:   (1)DIV块的隐藏与显示 如上所示, ...

  8. 20160728noip模拟赛zld

    前言:单独对题面描述的评分-> [题解]把相邻长度为2的子串两两连边,跑欧拉路 /*明天再写,先贴一份方老师代码压压惊*/ #include<map> #include<sta ...

  9. AngularJS 基础

    1. AngularJs 是一个JS 框架,是一种基于MVC的设计模式 2. script 需引用 <script src="angular.min.js">,安装包 ...

  10. 获取c++ edit控件内容

    CString str1,str2; ((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowText(str1); ((CEdit*)GetDlgItem(IDC_ ...