调研即时通信--XMPP、openfire、Spark

说明:简单记录调研过程,XMPP协议下即时通信工具的编译和使用时遇到的问题,服务端使用openfire,客户端使用Spark (Win)和Converse.js(Web端),安卓端使用的时Smack,此处没写安卓端,因为是其他人负责的:)

服务端openfire

编译过程参考IntelliJ IDEA openfire 使用IntelliJ IDEA 部署OPENFIRE 服务端

遇到的问题如下:

Error:(126, 39) java: 找不到符号

符号: 方法 getTimeStamp()

位置: 类型为org.apache.log4j.spi.LoggingEvent的变量 event

解决:项目中log4j.jar有多个,最先加载的是openfire\src\plugins,将其版本改为1.2.16即可。

Error:(159, 50) java: 找不到符号

符号: 方法 asBareJID()

位置: 类 org.xmpp.packet.JID

解决:项目中的tinder.jar1.3.0-SNAPSHOT,将其替换为1.3.0即可

Error:(571, 21) java: 无法访问org.apache.tools.ant.Task

找不到org.apache.tools.ant.Task的类文件

解决:给openfire添加ant.jar

HTTP ERROR 500

Problem accessing /setup/index.jsp. Reason:

    Server Error

Caused by:

java.lang.NullPointerException
  at org.jivesoftware.admin.AdminConsole.getAppName(AdminConsole.java:105)
  at org.jivesoftware.openfire.admin.decorators.setup_jsp._jspService(setup_jsp.java:192)
  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
  ......

解决:把admin-sidebar.xml(在openfires\src\resources\jar目录中)复制到out或者make的相关目录下

中文乱码

解决:将openfire_i18n_zh_CN.propertiestarget复制到out上,或者直接将配置文件openfire_i18n_zh_CN.properties转码,执行

native2ascii openfire_i18n_zh_CN.properties.old openfire_i18n_zh_CN.properties

配置

参考Openfire 的安装和配置,下图为控制台访问路径的设置。

这里写图片描述

添加插件

可以参考 openfire插件开发,或者 跟我一步一步开发自己的Openfire插件

主要是在plugins目录下编写代码,在build下添加build.properties,然后执行ant plugin,会自动生成jar包。

#插件目录名
plugin=helloworld

客戶端

不同的客户端能接受消息,退出时也会通知其他客户端,但发送的消息不可见,如Spark和Converse.js。

如果想通过本地域名访问,可以在C:\Windows\System32\drivers\etc\hosts添加域名映射,即

#....
127.0.0.1 wang #配置控制台访问路径时设置的值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值