您的位置:首页 > 运维架构

openfire源码部署

2012-11-25 22:25 169 查看


openfire源码部署

由于工作需要,这几天在研究openfire的插件开发,整的头都大了,配置环境、部署源码...由于网上的资料五花八门,几乎每种都试过,好多是走不通的,所以在这里记录一下我部署openfire源码的流程,分享给大家,也方便以后时间长了如果忘记可以参考,这可是我的血泪史啊...

首先,介绍几个概念:

XMPP:就是一个发送接收处理消息的协议,通过XML机制实现

IM:即时通信软件,如QQ、MSN等

Spark Smack 和 Openfire:

这些都是开源的,三个合起来就是一个完整的XMPP IM实现,包括服务器端——Openfire,客户端——Spark,XMPP 传输协议的实现——Smack(XMPP是一个协议,协议是

需要实现的,Smack起到的就是这样的一个作用,就是一套API,可扩展)。三者都是基于Java 语言的实现。

我是做android的,它用到的XMPP协议是asmack(其实和smack差不多的),现在已经实现android客户端向openfire注册、登录、添加好友、获取好友状态、一对一聊天

、建群等功能,其实不难,都是直接调用API就行了。之后就开始研究openfire的插件开发了,开发of插件第一句是部署源码,本文的重点就在这里。

第一步:去openfire官网下载of源码,openfire_src

第二步:下载完成解压到工作空间文件夹内

第三步:在eclipse中新建一个工程,命名:openfire_src,这样就相当于把刚才下载的源码自动导入这个新建的项目里了

第四步:此时,项目肯定会显示红叉,右击openfire_src工程-build path-Configure Build path...-Libraries-将openfire_src\build\lib下的所有jar包都导入

第五步:导入jar包之后,如果项目还有红叉,说明还缺少三个jar包:coherence.jar、coherence-work.jar、tangosol.jar,搞到这3个包按上面的方法导入,然后按

eclipse的提示处理后,就可以了

第六步:接下来是配置openfire运行时的参数,如下:

Run -- Run configuration 

选择Java Application 右键 新建一个Java application 重新命名为openfire 

 选择刚才建的项目openfire  

Main class:(search) org.jivesoftware.openfire.starter.ServerStarter 

单击 Arguments 选框 

       在 VM-Arguments  键入 

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

此处实际上是告诉 openfire ,openfireHome 在什么地方,用于eclipse执行 

java命令时传递的参数,openfire程序可以通过System.getProperty("openfireHome")得到 openfire的本地位置。

点击classpath 选项 

User entries --->Advanced-->Add Folder---> OK 

添加以下三目录 

openfire::src::i18n  

openfire::src::resources::jar 

openfire::build::lib::dist 

点击Common tab 

勾选 Debug和Run复选框 

设置虚拟机参数 

点击JRE tab 

installed JRES -->选中使用的JRE --->Edit -->Default VM Arguments 

-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 

如果是默认的大小很可能报 

java.lang.OutOfMemoryError: PermGen space异常。

第七步:利用ant编译openfire

1. eclipse中点击Window-->Show View-->Ant 

  2. 在Ant 页面点右键,选择 Add Buildfiles... 

  3. 展开openfire/build文件夹,选择build.xml, 点 OK. 

  4. 在Ant页面, 展开Openfire XMPP Server,双击 openfire ant 任务,会在控件台上输出运行成功的日志。

至此,openfire源码部署、运行完毕!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  openfire