Openfire服务端源代码开发配置指南[转]
转自:http://www.micmiu.com/opensource/openfire/openfire-src-config/
本文将图文介绍如何把openfire(以3.8.1为例)源码配置导入Eclipse,编译并启动的详细过程。
目录:
- 下载源码
- 配置Eclipse项目
- ANT编译项目
- 运行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 官网开发文档:http://community.igniterealtime.org/docs/DOC-1020
Openfire服务端源代码开发配置指南[转]的更多相关文章
- Java 服务端入门和进阶指南
作者:谢龙 链接:https://www.zhihu.com/question/29581524/answer/44872235 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 现在互联网上资 ...
- iOS推送小结(证书的生成、客户端的开发、服务端的开发)
1.推送过程简介 1.1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请 ...
- chrony时间同步 服务端 客户端 安装配置
chrony时间同步 服务端 客户端 安装配置 原创内容http://www.cnblogs.com/elvi/p/7658021.html #!/bin/sh #运行环境 centos7 #chro ...
- 03-案例——多任务版TCP服务端程序开发
案例——多任务版TCP服务端程序开发 1. 需求 目前我们开发的TCP服务端程序只能服务于一个客户端,如何开发一个多任务版的TCP服务端程序能够服务于多个客户端呢?完成多任务,可以使用线程 ...
- 7、Web Service-IDEA-jaxws规范下的 服务端/客户端 开发
前提简介:这里之后即使基于IDEA进行开发的,风格与之前有些不同之处! 1.服务端的开发 1.创建新的项目 2.pom.xml 添加开发时所需要的依赖 <?xml version="1 ...
- [Asp.net core 3.1] 通过一个小组件熟悉Blazor服务端组件开发
通过一个小组件,熟悉 Blazor 服务端组件开发.github 一.环境搭建 vs2019 16.4, asp.net core 3.1 新建 Blazor 应用,选择 asp.net core 3 ...
- 红帽学习笔记[RHCE]OpenLDAP 服务端与客户端配置
目录 OpenLDAP 服务端与客户端配置 关于LDIF 一个LDIF基本结构一个条目 属性 Object的类型 服务端 安装 生成证书 生成默认数据 修改基本的配置 导入基础数据 关于ldif的格式 ...
- seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案
seata服务端和客户端配置(使用nacos进行注册发现,使用mysql进行数据持久化),以及过程中可能会出现的问题与解决方案 说明: 之所以只用nacos进行了注册与发现,因为seata使用naco ...
- XMPP(一)-openfire服务端的安装和搭建
XMPP全称:可扩展通讯和表示协议 简介:可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯.表示和需求响应服务中的XML数据元流式传输.XMPP以Jabber协议为基础,而Jabber是即时通 ...
随机推荐
- WIFI配置专项测试
1. 测试项目 A. 路由器加密方式测试: B. 路由器信道选择测试: C. DHCP过期时间测试 D. 路由器WIFI密码复杂度测试: 2. 测试结果 2.1. 加密方式测试 路由器密码为简单,其他 ...
- Windows环境下搭建MosQuitto服务器
Windows环境下搭建MosQuitto服务器 2018年04月16日 22:00:01 wistronpj 阅读数:1185 摘自:https://blog.csdn.net/pjlxm/art ...
- 使用BBED理解和修改Oracle数据块
1.生成bbed list file文件: SQL> select file#||' '||name||' '||bytes from v$datafile; $ vim dbfile.txt ...
- JS中变量和常量的定义
var只能声明一个变量,这个变量可以保存任何数据类型的值 ES6之前并没有定义声明常量的方式,ES6标准中引入了新的关键字const来定义常量 使用const定义常量后,常量无法改变 const a= ...
- StackExchange.Redis实现Redis发布订阅
由于ServiceStack.Redis最新版已经收费,所以现在大家陆陆续续都换到StackExchange.Redis上了,关于StackExchange.Redis详细可以参看Github htt ...
- SIP简介
说明:以下内容来着之前下载的一份文档,现将概念部分摘录在BLog,如需要完整文档将放在文件中或留言. SIP简介,第1部分:SIP初探 时间:2006-04-07作者:Emmanuel Proulx浏 ...
- javascript总结36:DOM-点击按钮切换图片案例
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- ssh的配置[待写]
开机自启:/etc/rc.local /etc/init.d/ssh start 将 /etc/ssh/sshd_confg中PermitRootLogin no 改为yes,重新启动ssh服务.
- SOAP协议初级指南 (三)
独立元素 在SOAP中, 一个独立元素表示至少被一个多引用存取元素引用的类型的实例.所有的独立元素用soap:id属性作标记,而且这个属性的值在整个SOAP envelope中必须是唯一的.独立的元素 ...
- Transaction And Lock--已提交读快照
--===================================================== --行版本控制已提交读ALTER DATABASE DB5 SET READ_COMMI ...