openfire开发
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开发的更多相关文章
- Android基于XMPP Smack openfire 开发的聊天室
Android基于XMPP Smack openfire 开发的聊天室(一)[会议服务.聊天室列表.加入] http://blog.csdn.net/lnb333666/article/details ...
- Openfire开发广播服务接口,支持离线广播消息
Openfire开发广播服务接口,支持离线广播消息 概要 最近公司要求做一个web端向所有移动端发送公告,所以考虑到即时性就用openfire做服务.不过为了减轻web端的工作量,我们开发一个简单的插 ...
- openfire开发环境(3.9.1)
1.解压源码 2.把build/eclipse中的文件cp到源码跟目录,并修改文件名,前面增加"."号,变成eclipse工程. 3.导入eclipse, 把build/lib/, ...
- Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置
原文:http://www.cnblogs.com/lixiaolun/archive/2013/12/07/3462780.html 1.下载源代码:http://www.igniterealtim ...
- Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置(eclipse)
首先去官网把openfire的源码下下来: http://www.igniterealtime.org/downloads/source.jsp 1.下载后放到你的workspace当中,我的woek ...
- Openfire开发配置,Openfire源码配置,OpenFire二次开发配置
1.下载源码:http://www.igniterealtime.org/downloads/source.jsp 2.把源码解压出的openfire_src目录放至eclipse workplace ...
- openfire 开发遇到的些问题
openfire的 jid 账户名 + '@" + 你的域名 可是当你的账户名中 有大拼音的 时候 就会变成小写 比如 Test , jid = tes ...
- Android IOS WebRTC 音视频开发总结(六三)-- 2016国内IM云服务行业分析
本文主要国内IM云服务行业分析,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 谈到IM我们最先想到的是qq和微信 ...
- 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
开源一个Java Class实现Openfire登陆.推出.消息发送 N年前写的,希望对Openfire开发新手有帮助哦 import java.util.*; import java.io.*; ...
随机推荐
- Java方法重载
Java允许一个类中定义多个方法,只要参数列表不同就行了.如果同一个类中包含了两个或者两个以上的方法的方法名相同,但形参列表不同,则被称为方法重载. /* 参数类型不同的重载 */ public cl ...
- 使用JAXP进行sax解析
package cn.liuning.sax; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactor ...
- SQL Server 数据库最小宕机迁移方案
一.目的 在做SQL Server数据库维护的时候,当上司要求我们把几十G的数据文件搬动到其它服务器,并且要求最小宕机时间的时候,我们有没什么方案可以做到这些要求呢? 在这里我们假设这两台机器并不是在 ...
- WPF 多线程处理(6)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 以下是子窗体的UI: <Window ...
- 父<IFRAME>获取子页属性以及子页中<IFRAME>的方法
例子如下: 1.父页index.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "ht ...
- JS中的className含义
问题描述: JS中的className含义 问题解决: className说明: className属性可以设置和返回元素的class属性 可以有两种方法来获取对象的c ...
- 关于iOS中的文本操作-管理text fields 和 text views
Managing Text Fields and Text Views 管理UITextField和UITextView实例 UITextField和UITextView的实例拥有两个最主要的功能:展 ...
- PHP之Error与Logging函数讲解
PHP Error 和 Logging 简介 error 和 logging 函数允许你对错误进行处理和记录. error 函数允许用户定义错误处理规则,并修改记录错误的方式. logging 函数允 ...
- KASS分布式文件系统(Kass File System)
KASS分布式文件系统(Kass File System),简称KFS,是开始公司自主研发的分布式文件存储服务平台.KFS系统架构及功能服务类似Hadoop/GFS/DFS,它通过HTTP-WEB为上 ...
- zend studio 10 字体,颜色,快捷键等相关设置
一.修改字体 没想到zend studio 10中对中文显示不太好看,似乎有点小了.修改如下:打开 Window->Preferences->General->Appearance- ...