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/

openfire服务器开发环境搭建的更多相关文章

  1. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

  2. TODO:小程序开发环境搭建

    TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...

  3. Eclipse中Python开发环境搭建

    Eclipse中Python开发环境搭建  目 录  1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...

  4. Cordova+ionic 开发hybird App --- 开发环境搭建

    Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次 ...

  5. Centos 基础开发环境搭建之Maven私服nexus

    hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件  ...

  6. (转载)JAVA敏捷开发环境搭建

    整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样的模式是多了第一个开发本地环境.这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发.对于 ...

  7. Struts2开发环境搭建,及一个简单登录功能实例

    首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1. ...

  8. monkeyrunner之安卓开发环境搭建(一)

    在学习monkeyrunner之前,让我们先搭建好eclipse安卓开发环境. 对于程序开发人员而言,eclipse并不陌生,它提供了一个非常广阔的平台来开发程序.同样也可以用它来开发android程 ...

  9. 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程

      在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭 ...

随机推荐

  1. php之 人员的权限管理

    1.想好权限管理的作用? 2.有什么权限内容? 3.既然有权限管理那么就会有管理员? 4.登录后每个人员的界面会是不一样的? 一.想好这个权限是什么? 就做一个就像是vip的功能,普通用户和vip用户 ...

  2. ULN2003A 使用,有坑

    8脚接24V负极 9脚接24V正极 16接24V继电器,再接到24V正极 1-7无论给5V 正 或 负,10-16都不能达到24V,越靠近输入端的输出端电压越大,最大的才11V,最小的2.5V 最后发 ...

  3. 【python】-- IO多路复用(select、poll、epoll)介绍及实现

    IO多路复用(select.poll.epoll)介绍及select.epoll的实现 IO多路复用中包括 select.pool.epoll,这些都属于同步,还不属于异步 一.IO多路复用介绍 1. ...

  4. Qt插件开发入门(两种方法:High-Level API接口,Low-Level API接口)

    Qt中为我们提供了两种开发插件的方式.一种是使用High-Level API接口,一种是使用Low-Level API接口.所谓High-Level API 是指通过继承Qt为我们提供的特定的插件基类 ...

  5. 我的Android进阶之旅------>Android疯狂连连看游戏的实现之游戏效果预览(一)

    今天看完了李刚老师的<疯狂Android讲义>一书中的第18章<疯狂连连看>,从而学会了如何编写一个简单的Android疯狂连连看游戏. 开发这个流行的小游戏,难度适中,而且能 ...

  6. tf.InteractiveSession()与tf.Session()

    tf.InteractiveSession():它能让你在运行图的时候,插入一些计算图,这些计算图是由某些操作(operations)构成的.这对于工作在交互式环境中的人们来说非常便利,比如使用IPy ...

  7. java面试之数据库面试知识点【转】

    1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 键: 在关系中 ...

  8. 【九】MongoDB管理之安全性

    要保证一个安全的MongoDB运行环境,DBA需要实施一些控制保证用户或应用程序仅仅访问它们需要的数据.这些措施包括但不限于: 认证机制 基于角色的访问控制 加密 审计 一.认证机制 认证是验证客户端 ...

  9. 手机端网页web开发要点

    1.初始化 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...

  10. mac下搭建前端自动化工程

    好多年没有接触前端,发现前端行业发生了巨大的变化,很多新鲜术语,比如node.git.grunt.less.sass.预编译.自动化.模块化等等,看得让人晕头转向,不要担心,我会把这之前之后学习成果都 ...