您的位置:首页 > 运维架构

openfire+Spark

2013-12-23 17:58 88 查看
最近公司要做一个药师在线咨询功能,也就是在手机上做一个类似与QQ的IM聊天功能.以前没有做过类似的功能,只有去网上看看,听说Openfire不错,所以就去阅读相关资料,在2近一个星期的努力下,终于搭建起来了自己的Openfire服务器和自己的Spark客户端,其实要搭建其环境相当简单,只是以前没有做过类似的功能,走了不少弯路,在此写出来,没有多少技术含量,只是希望帮助有类似需要的童鞋少走一些弯路

我用的Ubuntu系统,其实Windows上也相似,不过没有去试过.

1.环境,需要安装Java环境和Mysql数据库.

在Ubuntu下安装环境相当简单,只需要将相应的Java环境下载下来放到本地,然后设置环境变量即可,网上很多,也可以看我安装Java环境的一篇博客.

安装Mysql更简单,只需要一句简单的install语句即可.sudo apt-get isntall mysql-server;

2.下载Openfire和Spark,我下载的是Openfire_3.8.2和Spart_2_6_8.

2.1下载Openfire后解压,然后放到/opt下.

2.2 建数据库.

连接数据库mysql -u root -p mysql;

查看数据库:show databases;

创建数据库openfire:create database openfire;

进入数据库openfire: usr openfire;

初始化数据库,用openfire数据库语句来初始化数据库.source
/opt/openfire/resources/database/openfire_mysql.sql;

3.设置OPenfire,进入http://127.0.0.1:9090/进行设置,只是在数据库的时候设置成自己的数据名就OK.

4.启动Spark,由于Spark与Openfire是同一个公司开发的,所以很容易设置,启动后设置服务器就OK了.

但是在Ubuntu下可能会报错

spark cannot access Spark/lib/windows: No such file or dir
解决如下:http://community.igniterealtime.org/thread/31623

You just need to change windows to linux in the Spark startup file.
There was this:
for i in `ls "$app_home/lib/windows" | egrep "\.(jar$|zip$)"`
to
for i in `ls "$app_home/lib/linux" | egrep "\.(jar$|zip$)"`
and it is running for me.  Although, now that I look at the file, right under it, I see this:
_path "$app_home/lib/windows/$i"


如果出现乱码,有2个可能,1.数据库编码不对,2.OPenfire编码不对,

创建数据库的时候设置utf8编码

create database openfire default character set utf8 default collate utf8_general_ci

如果已经建好数据库,则修改其编码:

mysql> alter database openfire default character set utf8 default collate utf8_general_ci;

在初始化openfire数据库,即第一次配置openfire服务器时,在连接数据库那里的连接串要加入字符编码格式,必须在连接里增加UTF8的编码要求,连接字符串设置如下: jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8
如果已经安装完成,这个配置也是可以改动的,直接到openfire的安装目录下,找到conf/openfire.xml这样一个文件,打开找到如下的XML节,修改其中的serverURL即可 <database> <defaultProvider>

<driver>com.mysql.jdbc.Driver</driver>

<serverURL>jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8</serverURL>

注意:由于&具有特殊含义,因此原&符号必须被转义为&(在xml中使用:“jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8”这个字符串。)

Spare界面不支持中文的解决办法:

Linux下Java图形界面中文显示乱码问题往往是所合适的jre/fonts里面没有合适的字体。

1,找到jre路径,创建fallback文件夹

代码:cd /home/gaoyibo/comodo/openfire/Spark/jre/lib/fonts

sudo mkdir fallback

2,进入fallback文件夹,链接中文字体(我选的是文泉驿正黑)

代码:cd fallback

sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc

sudo mkfontdir

sudo mkfontscale
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: