2017-07-26 更新:直接获取最新版源码,就不会报错了,而且可支持的插件多,老版本的openfire几乎没有可用的官方插件。

系统及软件环境:

MAC OSX EI Capitan 10.11.5

Eclipse J2EE版本

Openfire 3.8.2 Release

Coherence.jar和Coherence-work.jar(百度云:链接: https://pan.baidu.com/s/1hrWGkmS 密码: tpbx),Coherence官网地址:http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html

一、下载源码

1.下载Openfire源码,地址(https://github.com/igniterealtime/Openfire/releases?after=attic%2Ftrunk),此处我下载的是Openfire 3.8.2 Release版本。

二、导入源码

下载完之后解压文件目录如下:

此时不要急着用Eclipse导入项目,需要修改2处:

a.下载Coherence.jar和Coherence-work.jar,下载之后放到Openfire源码的Openfire-3.8.2/src/plugins/clustering/lib/目录下,这个目录下的README.txt文件中说明了需要3.7.1版本的Coherence的jar包。修改Openfire-3.8.2/build/eclipse/目录下面的"classpath"文件,使用文本编辑器打开,在末尾处添加两行jar的路径。

<classpathentry kind="lib" path="src/plugins/clustering/lib/coherence.jar"/>
<classpathentry kind="lib" path="src/plugins/clustering/lib/coherence-work.jar"/>

b.将Openfire-3.8.2/build/eclipse/目录下面的"classpath"、"project"、"settings"三个文件复制到Openfire-3.8.2/目录下,并分别改名".classpath"、".project"、".settings"(改名不能直接在文件名前面加点,可以用终端命令: mv "classpath" ".classpath")

然后使用Eclipse导入项目(File->Import)。

导入之后发现如下地方报错:

错误1. src/plugins/sip/src/java目录下的SipCommRouter.java和SipManager.java报错,可以用Eclipse的自动修复功能实现未实现的接口方法,添加异常处理代码,然后保存修改,错误就会消失。

错误2. src/java下面的错误需要导入jar,选中项目右键->Build Path->Configure Biuld Path,然后选择Libraries->Add JARs,找到项目目录下的build目录下的lib目录,依次导入这几个子目录下的jar文件。

导入完上述4个jar之后,Eclipse就不会报错了。

三、ANT编译项目

Eclipse已经集成了Ant,所以我们只需要在 /openfire_src/build/build.xml 文件右击,选择Run As –> Ant Build 即可完成编译,编程成功后,会在/openfire_src/的跟目录下生成两个新的文件夹:target 和 work 。

四、运行Openfire项目

1、配置资源文件

在Build Path配置中把  /openfire_src/src/i18n 、/openfire_src/src/resources/jar 、/openfire_src/build/lib/dist文件夹添加到 Source 中,如图:

2、配置启动参数

选择Run –> Run Configurations… 左边的Java Application,单击右键,选择 New:

把默认name:New_configuration 修改成:ServerStarter

选中Main选项卡,点击Browse按钮选择 openfire_src 项目;单击Search 按钮输入:ServerStarter 自动过滤后选择:ServerStarter – org.jivesoftware.openfire.starter:

选中Arguments选项卡,在VM arguments中填入:(下面标红的地方填写的是你导入后在Eclipse中的项目名称,这个名称需注意,有可能不是openfire_src,比如我的就是openfire,不一样的地方需要修改)

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

注意:项目路径 ${workspace_loc:openfire_src}

选中Common选项卡,将Debug和Run打钩(方便之后快速启动),然后点击apply,再点击run:

服务器Run之后控制台会打印消息:

打开浏览器输入地址:http://127.0.0.1:9090出现openfire的安装界面,说明启动成功。

参考链接:

http://www.myopenfire.com/article/getarticle/6

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

最新文章

  1. Python: 处理mongodb文档,怎么让UTC时间转换为本地时间?
  2. java 反编译利器JD-JUI
  3. 利用CAReplicatorLayer实现的加载动画
  4. 自己赚钱送女友iPhone做惊喜
  5. 基于.NET Socket API 通信的综合应用
  6. 20145224&amp;20145238《信息安全系统设计基础》实验四
  7. qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1-1: device not accepting address 8, error -110
  8. Base64编码通过URL传值的问题
  9. jQuery:节点(插入,复制,替换,删除)操作
  10. TC SRM 664 div2 A BearCheats 暴力
  11. 常用oracle查询总结
  12. Qt creator 搭配 valgrind 检测内存泄漏
  13. uni-app实现顶部导航栏显示按钮+搜索框
  14. Java多线程与并发面试题
  15. FileSaver.js 文件下载
  16. ArrayList, LinkedList, Vector - dudu:史上最详解
  17. golang初识5 - interface
  18. OGG初始化之将数据从文件加载到Replicat
  19. TZOJ 1210 The area(微积分)
  20. DEDE 首页调用指定栏目链接的代码

热门文章

  1. DevExpress控件显示前弹出到期时间解决办法
  2. 【基于rssi室内定位报告】rssi分布情况标识位置
  3. lua2json
  4. SM30 表格维护生成器
  5. appium 移动web样例脚本
  6. jQuery中通过JSONP来跨域获取数据的三种方式
  7. OSI 与 TCP/IP
  8. Quartz.Net在C#中的使用
  9. Delphi 的进制转换
  10. Spring Cloud之DiscoveryClient使用