- 浏览: 719410 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (76)
- DB-MySQL-noSQL-K/V (0)
- Tomcat-Jetty-JBoss (0)
- Java (12)
- Python (5)
- SVG (0)
- IDE-Eclipse (1)
- Vi-Vim (1)
- DWR-EXT-GWT-JSF (0)
- HTML-XHTML-XML-JSON-HTML5 (1)
- FLEX-ActionScript-AIR (1)
- 软件过程-软件质量 (2)
- 数学-计算数学 (2)
- 数学-数理统计-R (5)
- 信息论-系统论-控制论 (1)
- Golang (5)
- Erlang (2)
- 生活-心情 (1)
- 领域-生物信息学-基因组学 (6)
- 领域-生物信息-开发 (2)
- 领域-分子进化与系统发育-比较基因组学 (2)
- 数据-存储-交换 (3)
- 数据可视化-dataviz-infographic (4)
- 分布式-并行-云计算-网格-IaaS (3)
- PaaS-GoogleAppEngine-SAE (4)
- REST-RESTful-Restlet (2)
- RIA (0)
- 职业-程序人生 (3)
- 项目管理-PM-PMP (1)
- 分析-设计-架构 (10)
- 数据结构-算法 (6)
- 行业-创业 (3)
- 网虫生活-APP (2)
- Matlab-Scilab (2)
- JavaFX (1)
- Lisp-Lua-Haskell-FP (1)
- IT技术选型-咨询顾问 (3)
- Server-Apache-Nginx-lighttp (1)
- 数据可视化-Circos (0)
- 领域-互联网-移动互联网-IM (8)
- 领域-电子商务-B2C-O2O (1)
- 学术-科学研究 (2)
- IM-XMPP-STUN-TURN (0)
- Lucene-Solr-ElasticSearch (0)
- 分布式-HA-zookeeper (0)
最新评论
-
bluky999:
转:Python 标准库 urllib2 的使用细节http: ...
python发送GET或POST请求以便干一些趣事 -
bluky999:
aber_song 写道兄台,你实践完了吗,最近也在看这个,期 ...
使用web2py开发python web程序,部署到GAE或者apache上 -
aber_song:
兄台,你实践完了吗,最近也在看这个,期待呀。
使用web2py开发python web程序,部署到GAE或者apache上 -
luyuwww:
...
一位Erlang程序员的自白 -
bluky999:
STUN和TURN服务器 restundhttp://www. ...
pystun 和 py2exe 以及 NAT类型检测
将 openfire 源码作为java项目导入eclipse调试
背景:
- 笔者需要研究下XMPP协议及openfire源码,项目需求是构建IM系统,需要自己定协议,基于openfire开发。
- 在将openfire源码导入eclipse时遇到问题,查看网络上别人的经验,并多次尝试才得以解决。
- 这里分享自己的经验,以方便大家短时间内开始调试openfire,避免不必要的麻烦。
之前他人的经验分享:
http://www.cnblogs.com/eafy/archive/2009/02/21/1395559.html
http://hi.baidu.com/mykingbull/blog/item/788b5b347b44044b251f148c.html
http://hi.baidu.com/liangwenfa/blog/item/91134816834c694c21a4e939.html
http://hi.baidu.com/keexoo/blog/item/96c491b16ac36d5209230296.html
http://hi.baidu.com/liangwenfa/blog/item/2201320115e29d087aec2caf.html
以上经验,大多是基于openfire3.5或3.6的;一些是基于ant构建的,麻烦无比;笔者则只有一步用了ant,尽量简单地解决问题。
- 官方文档 Openfire SVN + Eclipse 3.3 + Subversive Installation Guide
http://community.igniterealtime.org/docs/DOC-1020
【我觉得看着就挺长挺麻烦的,但是要承认写文档的人很幽默,而且很有条理,方法也是很OK的。】
说明:
- openfire是一个是实现xmpp协议的开源服务器端程序,可用来构建IM系统及聊天室等应用。
- 一般下载openfire分发包即可部署程序运行;但本文还将下载其源码,以导入到eclipse做调试等用。
准备:
- openfire 3.7.0 及其源码下载: http://www.igniterealtime.org/downloads/index.jsp
- eclipse indigo
- openfire分发包及源码是使用ant构建的,所以本地开发环境最好已经安装ant(可在shell或command下执行ant命令)。
步骤:
1、下载openfire_3_7_0.exe(openfire_3_7_0.tar.gz) 及源码 openfire_src_3_7_0.tar.gz ; 可直接下载,也可svn检出;
将openfire安装在常用的程序安装目录,确认可正常启动关闭即可;
将源码解压待用,比如放在 d:\openfire_src\。
2、在打开的eclipse工作区新建java project,命名叫 openfire;除了默认的源码src外,再设置一个默认输出目录的classes (在项目上右键-属性-编译路径-源码);同时取消src的源码目录设置(从source列表里remove);
我们将此项目在文件系统的完整路径记作 $home (即....../workspace/openfire/);
3、把 d:\openfire_src\src 中的所有内容COPY到 $home/src 下(在文件系统中进行);
在shell或者command下进入 d:\openfire_src\build\ ,运行ant,看到编译成功后,将 d:\openfire_src\target\openfire\下的所有内容拷贝到 $home/src 覆盖(重复的覆盖,不重复的继续保留);
4、设置以下4个源码目录: $home\src\java, $home\src\i18n, $home\src\resource\java, $home\src\web\WEB-INF\classes ;可选地也可设置测试代码 $home\test\java 到源码目录;
5、尽管在$home\src下已经有了lib目录,而且有jar存在,但显然不是所有;因此个人建议忽略此lib目录,将 d:\openfire_src\build\lib\下的所有jar(含子目录)作为外部jar添加到项目的classpath;
6、修改 $home\src\web\WEB-INF\classes\openfire_init.xml文件为(用真实内容替换$home):
<openfireHome>$home\src</openfireHome>
7、修改ServerStarter类(org.jivesoftware.openfire.starter.ServerStarter)中的常量值:
private static final String DIR_PREFIX = "$home/src"; // 我们新增加的一个BASE路径常量
private static final String DEFAULT_LIB_DIR = DIR_PREFIX + "/lib"; // 原有的常量,稍作修改
private static final String DEFAULT_ADMIN_LIB_DIR = DIR_PREFIX + "/plugins/admin/webapp/WEB-INF/lib"; // 原有的常量,稍作修改
错误排解:
1、 最可能经常遇到的错误之一就是 ClassNotFound ,此时一般都是因为项目的source啊,classpath啊,jar等没有设置正确;
可以先检查eclipse的markers视图有无错误,以及项目的classes目录下是否有内容生成;
2、也有可能在刚修改完之后报错,请clean项目,并显示编译,然后刷新项目尤其是classes目录;之后再次尝试;
后记:
当你看到以下内容时,说明基本OK:
Openfire 3.7.0 [Aug 10, 2011 3:32:36 PM]
Admin console listening at http://127.0.0.1:9090
当你访问以上URL,看到openfire的安装设置界面时(http://127.0.0.1:9090/setup/index.jsp),你只需要创建一个数据库然后设置完成,就可以开始体验XMPP了,但更重要的是调试openfire。
祝你好运。
评论
最后一个应该是 \src\resources\jar
我用的是:openfire_src_3_8_1.zip
嗯,3.8可能有更新了,这个文章是3.7的时候写的
最后一个应该是 \src\resources\jar
我用的是:openfire_src_3_8_1.zip
楼主学习了
发表评论
-
Akka 简介与入门
2014-10-31 10:21 2311Akka 简介与入门 参考官网 http://a ... -
在Eclipse和NetBeans中针对不同项目设置不同的JAVA版本进行编译和运行
2014-08-29 12:21 2238众所周知,Eclipse中可以设置安装的JDK,以及默 ... -
分布式基础知识和算法理论
2014-08-12 19:55 1551分布式基础知识和算法理论 BY NODEXY@ ... -
IBMDW: 数据层的多租户浅谈
2014-03-21 10:57 1134数据层的多租户浅谈 http://www. ... -
陌陌技术架构的相关公开资料
2014-03-04 09:41 61181. 陌陌移动开发技术分享 http://ww ... -
短视频分享应用与服务器实现
2014-01-06 16:06 2770目前比较火热的一个话题是短视频,比如你可能听说过的 ... -
消息队列与 ActiveMQ, RabbitMQ,ZeroMQ 等
2013-12-31 15:15 11561关于消息队列 对于一个消息系统,提高吞吐量的同时 ... -
【转】【PPT集萃】十位一线专家分享Spark现状与未来
2013-12-27 17:06 1132【PPT集萃】十位一线专家分享Spark现状与未来 ... -
Openfire附近的人插件 OpenfireLBS
2013-12-23 17:42 2725项目代码 https://github.com/node/ ... -
Openfire 性能调优和集群方案
2013-07-24 17:39 22280Openfire 性能调优和集 ... -
网络编程与框架
2012-08-04 12:20 13241 网络通信系统 / 网络服务器 转: JAV ... -
pystun 和 py2exe 以及 NAT类型检测
2012-04-19 13:32 7201今天把pystun的python脚本打包成了.exe方便 ... -
网络穿透 与 NAT类型 及 STUN TURN 协议
2012-04-17 18:16 11411网络穿透 与 NAT类型 及 STUN TUR ... -
关于hadoop的入门和进阶文章收录
2012-04-07 22:46 26371 Hadoop http://hadoop.apac ... -
协议测试与服务器性能测试工具 列表
2012-03-22 15:56 3974协议测试与服务器性能 ... -
TimSort相关
2012-01-07 12:17 24651 关于TimSort,这里做一个资料汇总,具体介绍与实现请参 ... -
关于XMPP和openfire中的消息回执和聊天状态
2011-11-30 16:18 17167关于XMPP和openfire中的消息回执和聊天状态 ... -
HTTP协议上的文件上传
2011-11-21 11:33 161071 HTTP协议上的文件上传,最频繁的应用场景了。 RFC18 ... -
XMPP协议中的隐私策略
2011-10-25 15:55 2545XMPP协议中,隐私策略按内容分 presence-in, p ... -
Java web 负载均衡 和 缓存
2011-09-17 14:31 2982Java web 负载均衡 和 缓存 1 ap ...
相关推荐
一旦获得Openfire的源代码后,接下来的任务是将其导入到Eclipse中进行编译和调试。 1. **创建新项目**: - 在Eclipse中选择“File” -> “New” -> “Java Project”,创建一个名为`openfire`的新Java项目; - ...
在导入Openfire源代码到Eclipse时,开发者需要将这些jar文件添加到项目的类路径中,以便Eclipse能够识别并解析代码中的引用。 1. **构建路径与类路径**:在Eclipse中,构建路径(Build Path)是决定哪些库文件会被...
1. **导入Openfire源码至Eclipse** - 打开Eclipse,选择菜单栏中的“File”->“Import...”,然后选择“General”->“Existing Projects into Workspace”。 - 在弹出的对话框中,选择已复制到工作空间中的`...
本文将详细介绍如何在Eclipse环境下,对Openfire 3.7.1的源代码进行部署和运行,帮助开发者深入理解其内部机制。 首先,我们需要准备以下环境和资源: 1. Eclipse IDE,确保已经安装了JDK,因为Openfire是用Java...
接下来需要在MyEclipse中创建一个新的Java项目来导入Openfire源码: 1. 启动MyEclipse。 2. 在菜单栏中选择`File` > `Switch Workspace` > `Other`。 3. 在弹出的对话框中指定先前解压Openfire源码的位置作为工作...
2. **导入Openfire源码**:从Openfire官方网站下载源码包,然后在Eclipse中通过“File” > “Import” > “Existing Projects into Workspace”导入项目。确保选择正确的根目录,使得所有源代码被正确识别。 3. **...
6. **运行与调试**:一旦环境配置完成,你可以运行Openfire源码,通过Eclipse的Debug配置来启动服务器,并使用内置的调试工具进行代码调试。 通过以上步骤,你将成功构建一个完整的Openfire本地开发环境,可以深入...
- 在Eclipse中,通过"File" -> "New" -> "Java Project"来创建一个新的Java项目,确保选择与Openfire兼容的JRE版本。 3. **获取Openfire源码**: - 从官方网站或者通过Git仓库下载Openfire 3.9.1的源代码。这通常...
接下来,我们将Spark源代码导入Eclipse作为Java项目: 1. 打开Eclipse-3.5.2。 2. 选择`File` -> `New` -> `Project` -> `Java Project`。 3. 输入项目名称为`Spark`,在`Contents`选项中选择`Create project from ...
在将Openfire项目导入Eclipse进行开发时,可能会遇到由于依赖库不全导致的编译或运行问题。为了解决这些问题,我们需要确保所有必要的JAR包都已正确添加。本篇将详细介绍Openfire 3.10.2版本在Eclipse环境中可能缺少...
总结来说,Openfire二次开发环境的部署涉及源码下载、Eclipse项目配置、修复导入后的错误、使用ANT编译项目以及启动Openfire服务。这个过程中,关键在于正确设置项目的构建路径,解决所有编译错误,以便顺利运行和...
导入OpenFire源码到IDE,这将帮助你更好地理解OpenFire的工作原理并进行插件开发。确保你已经安装了Java Development Kit (JDK) 并配置好环境变量,因为OpenFire是用Java编写的。 在IDE中,创建一个新的Java项目,...
- 对于自定义服务器端的需求,可以通过在Eclipse中创建新的Java项目,然后将Openfire源代码导入作为依赖,实现自己的功能扩展。 7. **警告处理**: - 在使用JDK1.5及以上版本时,可能会出现关于泛型的警告。虽然...
这通常涉及到下载源码仓库(如Git),然后通过Eclipse的"Import -> Existing Maven Projects"功能将项目导入。确保Eclipse已经安装了Maven支持,并配置好Maven的本地仓库路径,以便正确解析依赖项。 2. **插件开发*...
在将Openfire源码导入IDE(如Eclipse或IntelliJ IDEA)时,可能会遇到缺少依赖JAR包的问题,这会影响项目的正常编译和运行。本资源包含了所有缺失的JAR包,以确保开发环境的完整性和功能。 1. **关于Openfire** ...
完成以上步骤后,你就可以在Eclipse环境中运行和调试Openfire源码了。这使得开发者能够自定义Openfire的功能,或者针对特定需求进行扩展。Openfire的源码开放性使得它成为一个非常适合进行二次开发的平台,你可以...
**第二部分:Spark源代码编译** Spark是Openfire的一个客户端,理解其源码编译有助于整体开发流程的掌握。 1. **源码检出**: 同样,检出Spark的源码,确保与Openfire版本兼容。 2. **创建,运行**: 在IDE中...
项目以Eclipse工程的形式提供,便于开发者导入并进行后续的开发和调试工作。 2. **改进的jar**:原生的asmack.jar是Android平台上的一个XMPP库,它允许开发者与XMPP服务器通信。这里提到的“改进的jar”可能是指...