Ubuntu12.04(64bit)上部署編譯運行Openfire+Spark環境

1、環境java


1、下載Openfire源碼

htp://www.igniterealtime.org/downloads/source.jsp數據庫

openfire_src_3_9_1.zip 點擊下載apache

下載完畢後解壓資源到某個路徑下 瀏覽器

relsese版本下載鏈接:服務器

http://www.igniterealtime.org/downloads/index.jspjsp

2、編譯源碼

打開Eclipse,新建工程,use default location選擇openfire解壓路徑ui



新建編譯項spa

Window->Show view->Ant.net

ant窗口中點擊Add buildfiles,在buildfile selection窗口中選擇openfile工程中的build.xml,點擊OKorm

展開Openfire XMPP Server項,在衆多項中選擇openfire[default],右鍵Run as->Ant Build進行編譯。

編譯經過後提示BUILD SUCCESSFUL

編譯成功後,工程目錄結構下多出兩個目錄targetwork

3、添加lib

將剛纔生成的目錄target/openfire/lib下全部jar包添加到工程中



4、配置run configurations

Main標籤頁的Main class點擊Search,搜索ServerStarter,選中ServerStarter – org.jivesoftware.openfire.starter,勾選Include system libraries when searching for a main class

Arguments標籤頁中VM arguments屬性填入:-DopenfireHome="${workspace_loc:openfire}/target/openfire

注意:冒號後的openfire是工程名,與你當前的工程名保持一致,不然運行會出現異常。

Classpath標籤頁中,選中User Entires,點擊Advanced,選擇Add Folders,點擊OK,分別添加openfire/src/i18nopenfire/src/resources文件夾。

Common標籤頁中,選中DebugRun,保存配置。


點擊Run按鈕運行,編譯完成了,應該不是太難。

5、運行openfire管控後臺

在瀏覽器中輸入http://127.0.0.1:9090,進入後臺管理界面。


6、配置管控平臺


這裏的域名能夠任意填寫,就是服務器名稱,客戶端向好友發消息時會用到該名稱,好比向好友gerry發消息時,代碼中可能會這樣寫gerry@simon

選擇標準數據庫鏈接,使用了外部的MySQL數據庫,本地須要安裝後進行鏈接。

這裏選擇了MySQL做爲數據庫,需安裝MySQL,並建立openfire數據庫

數據庫URL:替換本地ip和數據庫名,去除左[]括號


7、下載Spark源碼

參考Spark編譯運行

http://community.igniterealtime.org/docs/DOC-1020

SVN上獲取源碼

http://www.igniterealtime.org/downloads/source.jsp


8、導入Spark源碼到Eclipse

9、編譯Spark源碼

添加Ant編譯文件

運行ant編譯

當前ant版本爲1.9.x,編譯會出錯,要求Ant版本1.6.x1.7.xJAVA版本1.5.x1.6.x

BUILD FAILED

/usr/gym/pm/tech/Openfire/Spark/spark_2_5_6_branch/build/build.xml:129: Must use Ant 1.6.x or 1.7.x to build Spark

能夠修改build.xml中對antjava版本的要求。

<condition property="ant.not.ok" value="true">

<not>

<or>

<contains string="${ant.version}" substring="1.6"/>

<contains string="${ant.version}" substring="1.7"/>

<contains string="${ant.version}" substring="1.8"/>

<contains string="${ant.version}" substring="1.9"/>

</or>

</not>

</condition>

<condition property="java.not.ok" value="true">

<not>

<or>

<contains string="${ant.java.version}" substring="1.5"/>

<contains string="${ant.java.version}" substring="1.6"/>

<contains string="${ant.java.version}" substring="1.7"/>

<contains string="${ant.java.version}" substring="1.8"/>

</or>

</not>

</condition>

ant下載地址:http://ant.apache.org/bindownload.cgi

再次編譯則編譯經過,項目工程中多出target目錄

10、配置Run Configurations,運行


保存配置,點擊Run

會有提示錯誤

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.jivesoftware.launcher.Startup.start(Startup.java:83)

at org.jivesoftware.launcher.Startup.main(Startup.java:33)

Caused by: java.lang.Error: Unresolved compilation problems:

GSSAPIConfiguration cannot be resolved to a type

GSSAPIConfiguration cannot be resolved to a type


解決方案:

Spark/spark_2_5_6_branch/src/java中的GSSAPIConfiguration.java移動到Spark/spark_2_5_6_branch/src/java/org/jivesoftware目錄下,再次編譯-RUN

參考:

http://community.igniterealtime.org/thread/38439


相關文章
相關標籤/搜索