最近要做openfire的项目,以前没接触过,从头学习吧.

-----------------------------------------------
转贴:

Openfire源代码调试、编译开发环境

说明: 开发环境(IDE):Eclipse 3.3.2+JDK1.6+Ant 1.7+Openfire_src_3_5_1.zip

1. 如果代码中使用了import testng.xxx语句,就需要导入testng-5.8-jdk15.jar类库;

2. 对于警告信息,是没有关系的。因为这些警告信息是使用1.5以上版本JDK时候才出现的,使用JDK1.4是不会出现这些警告信息的。因为这些代码中的有 些是使用JDK 1.4编写的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。这些警告信息主要是提示将这些非泛型的代码修改为更加高级的方法——泛型,所以这些警告信息是不影响代码结果的。

如果需要修改为泛型也是可以,使用泛型来处理相关的集合类。

3. 在使用ant进行编译的时候,在ant视图中可能会出现警告如下信息:

taskdef class com.install4j.install4jtask cannot found

这个主要是要安装用来打包Java应用程序的install4j.exe程序,要安装到其默认的安装路径下。也就是C:"Program Files"目录下即可。

4. 在源码里面有一个文件夹里有个打包的图标,双击那个图标,install4j 就会读取你在build.xml文件里的信息、在里面完成做界面等打包工作。

编译调试的环境(IDE): Eclipse 3.3.2+JDK1.6+Ant(内置)+ openfire_src_2008-06-04.zip

在Windows操作系统下编译、调试openfire之前,需要确保HTTP SSL服务已经启动。否则,会出现各种错误信息。

1. 获取Openfire源代码

从官方网站上直接下载官方发布版本的源代码openfire_src_2008-06-04.zip源代码压缩包;

2. 创建openfire工程

将openfire_src_2008-06-04.zip解压后,目录下除了READEME.html、LICENSE.html和changelog.html三个网页文件之外,有下面四个子目录。

build 目录: build目录下收录的是生成安装文件(例如:rpm)所要的一些文件,例如JRE等。

resources 目录: resources目录下收录的是一些为实现国际化(i18n)和本地化的一些编码文件(例如:英文,中文,法文,德文等)。

documentation 目录: documentation目录下收录的是一些关于Openfire安装和配置的信息,但最终要的是这里有Openfire开发的Javadoc。

src 目录: 这个src文件夹就是我们想要的Openfire源代码了,这下面又有许多文件夹,我们只要Java文件夹就好,这里面实现的Openfire的核心功能,通过它就可以调试Openfire。

如果您是做二次开发,为了定制自己的服务器端,就可以采用这样方法:

(1)新建工程:File->New->Project->Java Project,单击Next,在Project name文本框中输入工程名:openfire,单击Finish

(2)解压后得到的openfire_src_3_5_1"src目录下所有内容复制到新建的工程目录workspace"openfire下

(3)在Package Explorer视图中,右击openfire工程,选择Properties,在弹出的对话框中选择Libraries->Add JARs..,把openfire_src_3_5_1/build/lib目录下的*.jar类库全部添加进来;选择Source标签页,Add Folder..,选中src/java目录前的复选框,点击OK,点击OK按钮。

(在Eclipse中将此Java文件夹当成源代码文件夹新建工程,建立新工程后观察 Openfire所import的包,发现Openfire用了许多开源工具,而这些库都在上文提到的Build目录的lib目录下,将Openfire 用到的库都添加到这个新建工程的Referenced Libraries中。或者如果这样一个一个添加比较麻烦的话还有一个方法就是从你安装好的Openfire服务器目录下的lib目录中(例 如:”D:"Program Files"Openfire"lib”或“/usr/local/openfire/lib”)找到openfire.jar,打开后将里面的org /jivesoftware删除,重新打包成jar并添加到这个新建工程的Referenced Libraries中,这样就可以省去了很多类似的工作。)

(4)但是这样新建的openfire项目没有打包部署,需要开发者自己完成相应的工作。

注意:新建工程之后,可能会出现一些警告信息,下面对此予以说明:

对于警告信息,是没有关系的。因为这些警告信息是使用1.5以上版本JDK时候才出现的, 使用JDK1.4是不会出现这些警告信息的。因为这些代码中的有些是使用JDK 1.4编写的,而JDK1.4不支持泛型,而JDK 1.5和JDK1.6是支持泛型的。这些警告信息主要是提示将这些非泛型的代码修改为更加高级的方法——泛型,所以这些警告信息是不影响代码结果的。如果 需要修改为泛型也是可以,使用泛型来处理相关的集合类。

3. 编译工程

openfire是用ant构建的,所以要先设置使得eclipse中每次编译都使用内置的ant工具,保证编译的正确执行。同时,要在Eclipse中设置为使用JDK作为JVM,如果使用JRE作为JVM,编译就会失败。

因为openfire在Windows下是使用install4j打包成.exe格式的安装文件的,所以需要安装install4j。否则,在使用ant 进行编译的时候,在ant视图中可能会出现警告如下信息:taskdef class com.install4j.install4jtask cannot found。这主要是要安装用来打包Java应用程序的install4j.exe程序,而且将要安装到其默认的安装路径C:"Program Files"install4j下。

注意: 有时候在Windows下安装的时候,可能会出现如下图所示的错误,而导致无法安装

但是,只要将安装程序install4j_windows_4_1_2_with_jre.exe拷贝到上面提示的目录下进行安装就可以安装成功,如复制到C:"Documents and Settings"liaolonglong目录下。

(1)在eclipse中点击Window->Show View->Ant,打开Ant窗口;

(2)在Ant 视图中,单击右键,在弹出的快捷菜单中选择Add Buildfiles..;

(3)在弹出的对话框中,展开openfire/build文件夹,选择build目录下的build.xml,点击OK;

(4)在Ant视图中, 展开Openfire XMPP Server,双击 openfire(default)编译工程

(5)如果在Console视图中显示“BUILD SUCCESSFUL”就表示编译成功。

7. 创建项目Builder

(1)在eclipse的菜单栏中,选择Run->Open Run Dialog...,在弹出的对话框左侧的树形结构中选择Java Application,单击右键,选择New创建启动配置。

(2) 在Run窗口的Main选项卡中, 修改Name文本框中的值,改成包含要启动的类的工程名openfire

(3)在Run窗口的Main选项卡中,点Browse按钮,选择openfire

(4)在Run窗口的Main选项卡中,点Search按钮,选择Main class为

org.jivesoftware.openfire.starter.ServerStarter,单击Apply按钮。(这是openfire的启动类)

(5)点击进入Arguments选项卡,在VM arguments文本框中输入

-DopenfireHome="${workspace_loc:openfire}/target/openfire"

单击Apply按钮。这个是用于eclipse执行java命令时传递的参数,这样openfire程序可以通过System.getProperty(“openfireHome”)得到openfire的本地位置。

(6)点击进入Classpath选项卡,选中User Entries,这样Advanced...就处于可用状态;点击Advanced...按钮,在Advanced Options页面,选择Add Folders, 单击OK。(默认情况下,已经将工程openfire添加到了这里,而不需要进行该项操作,如果有多个工程的时候才需要执行该项操作。)

选择openfire"src"i18n, 点OK按钮将这个文件夹加入到Classpath选项卡中;同样的方式把openfire"src"resources目录下的jar文件夹也加到Classpath选项卡中。

(11)在Common选项卡中,勾选Run复选框,单击Apply按钮。

设置完毕,这样以后在run这个工程的时候就会按照正确的配置进行了,debug的设置和run的设置类似,不再多说。

关于openfire相关推荐

  1. Openfire XMPP Smack RTC IM 即时通讯 聊天 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. spark+openfire即时通讯工具二次开发参考文档

    摘自:  http://gmd20.blog.163.com/blog/static/168439232010527525542/ 其中Spark是开源的基于XMPP协议的即时通讯工具,公司最近也换到 ...

  3. Openfire服务器的安装部署

    Openfire是一个强大的即时消息(IM)和聊天服务器,它实现了XMPP协议,可以使用它轻易的构建高效率的即时通信服务器. 其安装和部署都十分简单,并利用Web进行管理.单台服务器可支持上万并发用户 ...

  4. Openfire 性能优化

    Openfire  是一个XMPP协议的IM Server. Openfire使用mysql配合它不知所谓几乎无效的的Cache机制就注定无法支撑高并发, 所以第一步,将数据库切换为比较强一点的Mon ...

  5. smack+openfire实现Android实时通信(实现大部分基本功能)

    1. 开发环境 smack-4.3.4 openfire-4.6.3 开发工具:AndroidStudio openfire下载及安装: 官网:https://igniterealtime.org/p ...

  6. 在XMPP的JAVA开源实现Openfire中,增加LBS 附近的人功能

    1. XMPP协议 与 Openfire XMPP协议是IM领域的标准协议了,具体可参考  http://xmpp.org   及RFC6120,RFC6121,RFC6122等相关文档. http: ...

  7. centos 安装 openfire

    1. 安装centos 参见 http://wenku.baidu.com/view/3a79f73c580216fc700afdfa.html 2. 安装jdk http://johnsz.blog ...

  8. iOS 下配置XMPP 服务器openfire详解

    一.下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfir ...

  9. XMPP协议学习笔记三(Openfire服务器端搭建开发环境)

    2019独角兽企业重金招聘Python工程师标准>>> 在了解了XMPP的基本结构和一些概念之后,我们暂时告别枯燥的理论学习,来动手搭建一下Openfire+Spark的开发环境,实 ...

  10. OPENFIRE支持EMOJI

    为什么80%的码农都做不了架构师?>>>    用openfire搭建XMPP服务器时,客户端一发送emoji表情文字就会掉线,错误日志片段如下 2013.05.21 12:57:4 ...

最新文章

  1. 快速理解JavaScript面向对象编程—原型
  2. MongDB-副本集搭建【MongDB系列一】
  3. SQL SERVER数据库中的数据类型 转
  4. 光骓者的荣耀(洛谷P5638题题解,弃坑Java拥抱C++)
  5. hibernate clob mysql_Hibernate操作Clob类型数据
  6. linux很多python进程,Python多进程编程详解
  7. oracle 9i linux内核,在Linux下安装Oracle9i_oracle
  8. Kubernetes如何删除deployment
  9. java heapdump 分析工具_Java Heap dump文件分析工具jhat简介
  10. 次坐标从0开始_全站仪使用方法及坐标计算,讲解得真仔细!建议收藏!
  11. Android 最常用的设计模式五 安卓源码分析——建造者模式
  12. 漫谈CRM体系化建设3:如何留住客户
  13. 考公 | 粉笔网课笔记——数量 刘凯
  14. 什么是数字孪生智慧城市应用场景
  15. 《面试集:自用》《待完善... ...》
  16. golang爬虫抓取商品报价
  17. 文本检索系统-1:简介
  18. Mongodb空密码可连接安全性问题
  19. mysql query 优化_第 8 章 MySQL 数据库 Query 的优化
  20. 无错版K线全修复带余额堡/带会员等级财经系统源码

热门文章

  1. 什么是一个可执行文件?
  2. python snownlp情感分析和词云分析
  3. ChatGPT通过中国数据库系统工程师(DBA)认证?
  4. 电脑重装系统后Win7打印机无法打印该如何处理?
  5. 软件开发中的详细设计
  6. 如何使用ODB(How to use odb On windows)
  7. 聚集索引和非聚集索引详解 (zhuang)
  8. mini2440LED驱动程序开发
  9. 小红旗图标在excel如何输入_Excel用条件格式给数据插上小红旗
  10. 材料研发转行,转什么比较好