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

 

本文将图文介绍如何把openfire(以3.8.1为例)源码配置导入Eclipse,编译并启动的详细过程。

目录:

  1. 下载源码
  2. 配置Eclipse项目
  3. ANT编译项目
  4. 运行Openfire项目

[一]、下载源码

打开网址:http://www.igniterealtime.org/downloads/source.jsp 选择目前最新版本 openfire_src_3_8_1.zip 下载。

[二]、配置Eclipse项目

1、把下载好的 openfire_src_3_8_1.zip 压缩包直接解压到Eclipse的工作目录(以我 D:\workspace_sun\ 为例),结构如下:

2、把 openfire_src\build\eclipse 目录下的文件夹setting、文件classpth、文件project全部copy到 openfire_src\ 目录下,然后把openfire_src\classpth、openfire_src\project修改成Eclipse工程配置文件格式:openfire_src\.classpath 、openfire_src\.project (如果无法修改文件名,copy任一现有项目的文件后修改其内容亦可)。

3、然后打开Eclipse,选择 File –> Import… –> Existing Projects into Workspace  选择D:\workspace_sun\openfire_src 导入即可:

导入后目录结构如下:

3、项目导入后编译错误的解决

目录:/openfire_src/src/plugins/clustering/src/java 报错是因为缺少coherence相应的包:coherence.jar、coherence-work.jar,具体信息可以参考:openfire_src/src/plugins/clustering/lib/README.TXT 中的说明。可以从其官网下载:http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html

下载jar包后copy到目录:/openfire_src/src/plugins/clustering/lib 下,把这两个jar 添加到classpath中,直接在/openfire_src/.classpath 文件中添加如下内容即可:

查看源代码

打印帮助

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

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

目录:/openfire_src/src/plugins/sip/src/java 报错是因为 SipCommRouter.java和SipManager.java 这两个类没有实现抽象方法和完成异常处理,最简单的解决办法是利用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中填入:

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

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

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

3、运行后控制台日志如下:

Openfire 3.8.1 [Mar 18, 2013 11:23:33 PM]
Admin console listening at http://127.0.0.1:9090

4、浏览器中输入地址: http://127.0.0.1:9090 回车:

看到上述界面表示Openfire的源码配置、导入、编译、启动已经圆满成功了。

后续服务端配置指南的过程可以参考:http://www.micmiu.com/opensource/openfire/openfire-server-install

[五]、参考

Openfire服务端源代码开发配置指南[转]的更多相关文章

  1. Java 服务端入门和进阶指南

    作者:谢龙 链接:https://www.zhihu.com/question/29581524/answer/44872235 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 现在互联网上资 ...

  2. iOS推送小结(证书的生成、客户端的开发、服务端的开发)

    1.推送过程简介 1.1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请 ...

  3. chrony时间同步 服务端 客户端 安装配置

    chrony时间同步 服务端 客户端 安装配置 原创内容http://www.cnblogs.com/elvi/p/7658021.html #!/bin/sh #运行环境 centos7 #chro ...

  4. 03-案例——多任务版TCP服务端程序开发

    案例——多任务版TCP服务端程序开发   1. 需求     目前我们开发的TCP服务端程序只能服务于一个客户端,如何开发一个多任务版的TCP服务端程序能够服务于多个客户端呢?完成多任务,可以使用线程 ...

  5. 7、Web Service-IDEA-jaxws规范下的 服务端/客户端 开发

    前提简介:这里之后即使基于IDEA进行开发的,风格与之前有些不同之处! 1.服务端的开发 1.创建新的项目 2.pom.xml 添加开发时所需要的依赖 <?xml version="1 ...

  6. [Asp.net core 3.1] 通过一个小组件熟悉Blazor服务端组件开发

    通过一个小组件,熟悉 Blazor 服务端组件开发.github 一.环境搭建 vs2019 16.4, asp.net core 3.1 新建 Blazor 应用,选择 asp.net core 3 ...

  7. 红帽学习笔记[RHCE]OpenLDAP 服务端与客户端配置

    目录 OpenLDAP 服务端与客户端配置 关于LDIF 一个LDIF基本结构一个条目 属性 Object的类型 服务端 安装 生成证书 生成默认数据 修改基本的配置 导入基础数据 关于ldif的格式 ...

  8. seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案

    seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案 说明: 之所以只用nacos进行了注册与发现,因为seata使用naco ...

  9. XMPP(一)-openfire服务端的安装和搭建

    XMPP全称:可扩展通讯和表示协议 简介:可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯.表示和需求响应服务中的XML数据元流式传输.XMPP以Jabber协议为基础,而Jabber是即时通 ...

随机推荐

  1. 关于HDFS默认block块大小

    这是有疑惑的一个问题,因为在董西成的<Hadoop技术内幕--深入解析MapReduce架构设计与实现原理>中提到这个值是64M,而<Hadoop权威指南>中却说是128M,到 ...

  2. Linux的作业管理

    一.作业管理的场景 作业管理(job control)是在bash环境下使用的,主要使用在同一个bash中管理多个作业的场景,譬如登录bash之后想同时复制文件.数据搜索,编译. 但是bash的作业管 ...

  3. RTX二次开发笔记2

    问题一:关于DLL文件的引用 在安装文件夹内 APIObject.dll==>RTXSAPI.dll 服务器API接口 RTXCAPI.DLL ==> 客户端API接口 问题二:RTX二次 ...

  4. Git回滚到历史节点(SourceTree篇)

    转自:http://blog.csdn.net/u010416101/article/details/78142697.https://www.zhihu.com/question/48178380 ...

  5. Flask框架 之 第三方组件

    浏览目录 flask-session flask-sqlalchemy flask-script flask-migrate flask-session 安装 pip3 install flask-s ...

  6. 实践作业3:白盒测试----了解JunitDAY9.

    我觉得整个白盒测试过程中,最大的难点就是学习Junit和使用它进行测试.我们组安排了两个同学一起完成这部分工作.因为这个工具之前从来没有接触过,因此需要从头开始自学.找到好的教程其实可以事半功倍,我找 ...

  7. QT学习之多线程

    [为什么要用多线程?] 传统的图形用户界面应用程序都只有一个执行线程,并且一次只执行一个操作.如果用户从用户界面中调用一个比较耗时的操作,当该操作正在执行时,用户界面通常会冻结而不再响应.这个问题可以 ...

  8. Transferring Data Between ASP.NET Web Pages

    14 July 2012 20:24 http://www.mikesdotnetting.com/article/192/transferring-data-between-asp-net-web- ...

  9. CodeForces 681D Gifts by the List (树上DFS)

    题意:一个家庭聚会,每个人都想送出礼物,送礼规则是, 一个人,先看名单列表,发现第一个祖先 就会送给他礼物,然后就不送了,如果他没找到礼物 他会伤心的离开聚会!告诉你m个祖先关系, 和每个人想给谁送! ...

  10. codeforces 914E Palindromes in a Tree(点分治)

    You are given a tree (a connected acyclic undirected graph) of n vertices. Vertices are numbered fro ...