openfire服务器开发环境搭建
2017-07-26 更新:直接获取最新版源码,就不会报错了,而且可支持的插件多,老版本的openfire几乎没有可用的官方插件。
系统及软件环境:
MAC OSX EI Capitan 10.11.5
Eclipse J2EE版本
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服务器开发环境搭建的更多相关文章
- node.js之开发环境搭建
一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...
- TODO:小程序开发环境搭建
TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...
- Eclipse中Python开发环境搭建
Eclipse中Python开发环境搭建 目 录 1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...
- Cordova+ionic 开发hybird App --- 开发环境搭建
Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次 ...
- Centos 基础开发环境搭建之Maven私服nexus
hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件 ...
- (转载)JAVA敏捷开发环境搭建
整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样的模式是多了第一个开发本地环境.这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发.对于 ...
- Struts2开发环境搭建,及一个简单登录功能实例
首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1. ...
- monkeyrunner之安卓开发环境搭建(一)
在学习monkeyrunner之前,让我们先搭建好eclipse安卓开发环境. 对于程序开发人员而言,eclipse并不陌生,它提供了一个非常广阔的平台来开发程序.同样也可以用它来开发android程 ...
- 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭 ...
随机推荐
- GS与MS之间通信
GS与MS之间通信 注意GS与MS是两个线程,现在是每个map一个线程,他们之间是内部协议进行通信的,那既然是两个线程那如何通信呢,看了net进程通信这个就比较简单了 举个例子 m_pMap-> ...
- 【BZOJ4184】shallot 线段树+vector+线性基
[BZOJ4184]shallot Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏. 每个时刻她会给小葱一颗小葱苗或者是从 ...
- 大数据学习系列(1)-- linux之文件系统结构介绍
1./ 根目录 --------- 所有目录挂在其下 2./boot --------- 存放Ubuntu内核和系统启动文件.系统启动时这些文件先被装载. 3./etc --------- 系统的配置 ...
- Android笔记之WebView加载网页的进度回调
wv.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, i ...
- JVM虚拟机参数
追踪参数: 打印GC简要信息 -XX:+PrintGC 打印GC详细信息 -XX:+PrintGCDetails 打印CG发生的时间戳 -XX:+PrintGCTimeStamps 指定GC log的 ...
- 创建美国地区的appleId
参考: https://zhuanlan.zhihu.com/p/36574047 美国人身份信息生成: https://www.fakeaddressgenerator.com/Index/in ...
- Python基础(2)_数字和字符串类型
一.数据类型 1.数字 整型 Python的整型相当于C中的long型,Python中的整数可以用十进制,八进制,十六进制表示. >>> --------->默认十进制 > ...
- 用cocos2d-html5做的消除类游戏《英雄爱消除》(1)——系统主菜单
系统主菜单如下图所示: 首先,介绍下这个主菜单,它包含了一个动画logo以及一个按钮选项,动画logo每隔1秒钟切换一张图片,点击相应的按钮选项会切换不同的游戏场景. 下面看下这个界面的源码: /** ...
- 美团offer
首先说明我是OP岗,RD的可能没有参考意义.本人985渣本一枚,非计算机.网络相关专业.不得不说美团的面试官给我的感觉很好,首先他们都比较极客,都是各个方向的大牛.虽然根据面试流程必须问我一些与我方向 ...
- [原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...