openfire+Spark

最近公司要做一個藥師在線諮詢功能,也就是在手機上做一個類似與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&amp;characterEncoding=utf8</serverURL> 
注意:由於&具有特殊含義,因此原&符號必須被轉義爲&amp;(在xml中使用:“jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&amp;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

發佈了31 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章