import openfire4.0.2 source code in eclipse
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                import openfire4.0.2 source code in eclipse
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            【0】README
 
1)本文旨在給出 導入 openfire4.0.2 源碼到 eclipse的具體 steps;
 
2)小生我導入該version 的 openfire 用了近2 天時間, 比較心酸,究其原因是 源碼 引入的 jar 包不夠全面,或引入路徑錯誤,下面我會給出解決方法;
 
3)本文參考了如下post(不過按照他們的steps , 我一直沒有導入成功):http://blog.csdn.net/lovexieyuan520/article/details/37743433? +?https://308681282.gitbooks.io/openfire/content/di_si_zhang_openfire_yuan_ma_dao_ru_yi_ji_kai_fa.html
 
4)要知道, 原作者的 eclipse 項目 對jar 包導入的不夠全面,但是它們都全部存在項目中,只不過沒有全部添加到 項目的 build path 中;所以有些 post(包括上述兩篇 post)提出要 down 相應 jar 并添加到 該項目中,這樣做是不行的,因為 jar 包的 版本不匹配(至少我沒有執行正確),而且源碼中并不是缺少jar 包,而是jar包的導入路徑錯誤而已;
 
5)jdk 要求:jdk1.7 以上(包括1.7, 項目根目錄/build/build.xml 中有聲明)
 
【1】import steps step1)download source code from?http://www.igniterealtime.org/downloads/source.jsp(this is our target link)?, download installation release from?http://www.igniterealtime.org/downloads/, also you can download source code from github via?https://github.com/igniterealtime, and also you can checkout the openfire source code history releases from?https://github.com/igniterealtime/Openfire/releases
step2)將該 source code zip 文件解壓到某個文件夾下,如 eclipse_one 文件夾下;拷貝 eclipse_one\openfire_src_4_0_2\openfire_src\build\eclipse 中的所有文件到 eclipse_one\openfire_src_4_0_2\openfire_src 目錄下,重命名它們的文件名,加上前綴 . 即可(這需要在win 命令行 下通過 rename 完成)(注意,下載下來的 openfire 源碼沒有 target 和 work 兩個文件夾,這兩個文件夾是ant 編譯后生成的,這在后面會講到)
 
 
 
 
Attention)本文 README 已經說到了, github作者源碼中的 jar 包 有些 導入的不夠全面,這些jar 的導入聲明 在 .classpath 文件中;當我們在 eclipse中 添加 jar 文件到 build path 的時候,實際上是在修改這個 .classpath 文件中的 jar 包聲明;(由于其jar 導入的不夠全面,本文會在下面給出 解決方法)
step3)然后打開Eclipse,選擇 File –> Import… –> Existing Projects into Workspace, copy D:\classical_books\asiainfo\eclipse_one\openfire_src_4_0_2\openfire_src 到 select root directory(當然,這里我之前導入過,所以不能再次導入,只是為了說明這個 case, 截圖而已)
 
 
step4)導入后,你會發現,項目會出現 紅色的感嘆號,這說明,我們的 build path 中的jar 導入路徑有問題;光標到項目->右鍵->build path -> Libraries (我這里的項目沒有紅色感嘆號,是因為我理清了 jar 包的導入路徑,下面會給出 導入全部 jar的正確方式);
 
 
【2】proble+solutions(對的,這里有兩種解決方法) 1)problem:正如README 所說,github raw source code 中的jar導入路徑不夠全面(即 .classpath 文件中聲明導入jar 的導入路徑有問題,或其根本就不存在); 2)solutions 2.1)solution1:你可以直接下載我的 .classpath 并覆蓋 你項目下的 .classpath,重啟 eclipse 即可(因為,我已經理清了 jar 包的導入路徑,所以你只需要將其 正確的 導入路徑描述(.classpaht) 覆蓋原來的 ?.classpath 即可);(down site?https://github.com/pacosonTang/core-java-volume/blob/master/openfire_supplement/.classpath) 2.2)solution2:手動理清 jar包的導入路徑;首先,需要在 java build path 中 將 缺少的 jar 全部 移除,然后添加 項目中的 沒有導入的jar包 到 build path;
  
Supplement)通過分析 .classpath 文件,你會發現, openfire 中的jar 存在于 build/lib 及其子文件夾下面 和 存在于 各個plugins 文件夾下面;其代碼(.classpath)聲明如下:(這就是為什么我們需要添加 原作者遺漏的本應該 導入jar 的原因) <?xml version="1.0" encoding="UTF-8"?> <classpath><classpathentry kind="src" path="src/java"/><classpathentry kind="src" path="src/i18n"/><classpathentry kind="src" path="build/lib/dist"/><classpathentry kind="src" path="src/resources/jar"/><classpathentry kind="src" output="work/plugins-dev/broadcast/target/classes" path="src/plugins/broadcast/src/java"/><classpathentry kind="src" output="work/plugins-dev/clientControl/target/classes" path="src/plugins/clientControl/src/java"/><classpathentry kind="src" output="work/plugins-dev/contentFilter/target/classes" path="src/plugins/contentFilter/src/java"/><classpathentry kind="src" output="work/plugins-dev/dbaccess/target/classes" path="src/plugins/dbaccess/src/java"/><classpathentry kind="src" output="work/plugins-dev/emailListener/target/classes" path="src/plugins/emailListener/src/java"/><classpathentry kind="src" output="work/plugins-dev/fastpath/target/classes" path="src/plugins/fastpath/src/java"/><classpathentry kind="src" output="work/plugins-dev/gojara/target/classes" path="src/plugins/gojara/src/java"/><classpathentry kind="src" output="work/plugins-dev/jingleNodes/target/classes" path="src/plugins/jingleNodes/src/java"/><classpathentry kind="src" output="work/plugins-dev/justmarried/target/classes" path="src/plugins/justmarried/src/java"/><classpathentry kind="src" output="work/plugins-dev/kraken/target/classes" path="src/plugins/kraken/src/java"/><classpathentry kind="src" output="work/plugins-dev/loadStats/target/classes" path="src/plugins/loadStats/src/java"/><classpathentry kind="src" output="work/plugins-dev/monitoring/target/classes" path="src/plugins/monitoring/src/java"/><classpathentry kind="src" output="work/plugins-dev/motd/target/classes" path="src/plugins/motd/src/java"/><classpathentry kind="src" output="work/plugins-dev/nodejs/target/classes" path="src/plugins/nodejs/src/java"/><classpathentry kind="src" output="work/plugins-dev/packetFilter/target/classes" path="src/plugins/packetFilter/src/java"/><classpathentry kind="src" output="work/plugins-dev/presence/target/classes" path="src/plugins/presence/src/java"/><classpathentry kind="src" output="work/plugins-dev/registration/target/classes" path="src/plugins/registration/src/java"/><classpathentry kind="src" output="work/plugins-dev/search/target/classes" path="src/plugins/search/src/java"/><classpathentry kind="src" output="work/plugins-dev/stunserver/target/classes" path="src/plugins/stunserver/src/java"/><classpathentry kind="src" output="work/plugins-dev/subscription/target/classes" path="src/plugins/subscription/src/java"/><classpathentry kind="src" output="work/plugins-dev/userCreation/target/classes" path="src/plugins/userCreation/src/java"/><classpathentry kind="src" output="work/plugins-dev/userImportExport/target/classes" path="src/plugins/userImportExport/src/java"/><classpathentry kind="src" output="work/plugins-dev/userservice/target/classes" path="src/plugins/userservice/src/java"/><classpathentry kind="src" output="work/plugins-dev/xmldebugger/target/classes" path="src/plugins/xmldebugger/src/java"/><classpathentry kind="src" path="src/test/java"/><classpathentry kind="src" path="src/test/throttletest/src"/><classpathentry kind="lib" path="build/lib/ant/ant-contrib.jar"/><classpathentry kind="lib" path="build/lib/cglib-nodep.jar"/><classpathentry kind="lib" path="build/lib/dist/hsqldb.jar"/><classpathentry kind="lib" path="build/lib/dist/jtds.jar"/><classpathentry kind="lib" path="build/lib/dist/mail.jar"/><classpathentry kind="lib" path="build/lib/dist/mysql.jar"/><classpathentry kind="lib" path="build/lib/dist/postgres.jar"/><classpathentry kind="lib" path="build/lib/dist/slf4j-log4j12.jar"/><classpathentry kind="lib" path="build/lib/i4jruntime.jar"/><classpathentry kind="lib" path="build/lib/jmock-junit4.jar"/><classpathentry kind="lib" path="build/lib/jmock-legacy.jar"/><classpathentry kind="lib" path="build/lib/jmock.jar"/><classpathentry kind="lib" path="build/lib/junit.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-codec.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-httpclient.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-lang.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-logging.jar"/><classpathentry kind="lib" path="build/lib/merge/concurrentlinkedhashmap-lru-1.0_jdk5.jar"/><classpathentry kind="lib" path="build/lib/merge/dbutil.jar"/><classpathentry kind="lib" path="build/lib/merge/dom4j.jar"/><classpathentry kind="lib" path="build/lib/merge/jaxen.jar"/><classpathentry kind="lib" path="build/lib/merge/jdom.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-continuation.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-http.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-io.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-security.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-server.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-servlet.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-util.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-webapp.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-xml.jar"/><classpathentry kind="lib" path="build/lib/merge/jmdns.jar"/><classpathentry kind="lib" path="build/lib/merge/jzlib.jar"/><classpathentry kind="lib" path="build/lib/merge/libidn.jar"/><classpathentry kind="lib" path="build/lib/merge/log4j.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-core.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-filter-compression.jar"/><classpathentry kind="lib" path="build/lib/merge/proxool.jar"/><classpathentry kind="lib" path="build/lib/merge/rome-fetcher.jar"/><classpathentry kind="lib" path="build/lib/merge/rome.jar"/><classpathentry kind="lib" path="build/lib/merge/shaj.jar"/><classpathentry kind="lib" path="build/lib/merge/sitemesh.jar"/><classpathentry kind="lib" path="build/lib/merge/slf4j-api.jar"/><classpathentry kind="lib" path="build/lib/merge/standard.jar"/><classpathentry kind="lib" path="build/lib/merge/stringprep.jar"/><classpathentry kind="lib" path="build/lib/merge/tinder.jar"/><classpathentry kind="lib" path="build/lib/merge/xpp3.jar"/><classpathentry kind="lib" path="build/lib/objenesis.jar"/><classpathentry kind="lib" path="build/lib/src/commons-lang-sources.jar"/><classpathentry kind="lib" path="build/lib/ant/xmltask.jar"/><classpathentry kind="lib" path="src/plugins/clientControl/lib/commons-fileupload-1.0.jar"/><classpathentry kind="lib" path="src/plugins/fastpath/lib/commons-fileupload-1.0.jar"/><classpathentry kind="lib" path="src/plugins/fastpath/lib/lucene.jar"/><classpathentry kind="lib" path="src/plugins/fastpath/lib/xstream.jar"/><classpathentry kind="lib" path="src/plugins/gojara/lib/json.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/concurrent.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/dwr.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/httpclient.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/httpcore.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jainsipapi.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jainsipri.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jakarta-regexp.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jcip-annotations.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jggapi.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jml.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/joscar-common.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/joscar-protocol.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jqql.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jsocks.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/json.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/martyr.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/msim.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/openymsg.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/smack.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/smackx.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/stcomm.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/xmlrpc.jar"/><classpathentry kind="lib" path="src/plugins/jingleNodes/lib/jnsapi.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/dwr.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/itext.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/jcommon.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/jfreechart.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/jrobin.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/lucene.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/picocontainer.jar"/><classpathentry kind="lib" path="src/plugins/registration/lib/recaptcha4j.jar"/><classpathentry kind="lib" path="src/plugins/sip/lib/JainSipApi1.1.jar"/><classpathentry kind="lib" path="src/plugins/sip/lib/nist-sip-1.2.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/commons-fileupload-1.0.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/isorelax.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/msv.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/relaxngDatatype.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/xsdlib.jar"/><classpathentry kind="lib" path="src/test/throttletest/build/lib/smack.jar"/><classpathentry kind="lib" path="src/test/throttletest/build/lib/smackx.jar"/><classpathentry kind="lib" path="src/web/WEB-INF/lib/commons-fileupload.jar"/><classpathentry kind="lib" path="src/web/WEB-INF/lib/commons-io.jar"/><classpathentry kind="lib" path="src/web/WEB-INF/lib/dwr.jar"/><classpathentry kind="lib" path="build/lib/merge/servlet-api.jar"/><classpathentry kind="lib" path="build/lib/ant/ant-junit.jar"/><classpathentry kind="lib" path="build/lib/ant/ant-junit4.jar"/><classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/><classpathentry kind="lib" path="src/plugins/stunserver/lib/jstun-0.6.1.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-jmx.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-integration-jmx.jar"/><classpathentry kind="lib" path="build/lib/dist/bcpg-jdk15on.jar"/><classpathentry kind="lib" path="build/lib/dist/bcpkix-jdk15on.jar"/><classpathentry kind="lib" path="build/lib/dist/bcprov-jdk15on.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-servlets.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-client.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-core.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-http-common.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-http-server.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-server.jar"/><classpathentry kind="lib" path="build/lib/merge/javax-websocket-client-impl.jar"/><classpathentry kind="lib" path="build/lib/merge/javax-websocket-server-impl.jar"/><classpathentry kind="lib" path="src/plugins/callbackOnOffline/lib/javax.ws.rs-api-2.0.1.jar"/><classpathentry kind="lib" path="src/plugins/userservice/lib/jersey-bundle-1.18.jar"/><classpathentry kind="lib" path="build/lib/hamcrest-core.jar"/><classpathentry kind="lib" path="build/lib/jaxb-api.jar"/><classpathentry kind="lib" path="build/lib/ant/jugbbant-1.7.jar"/><classpathentry kind="lib" path="build/lib/ant/slf4j-simple.jar"/><classpathentry kind="lib" path="build/lib/ant/xalan.jar"/><classpathentry kind="lib" path="build/lib/dist/javax.websocket-api.jar"/><classpathentry kind="lib" path="build/lib/dist/npn-boot.jar"/><classpathentry kind="lib" path="build/lib/merge/javassist.jar"/><classpathentry kind="lib" path="build/lib/merge/javax.websocket-api.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-plus.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-schemas.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-integration-beans.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-integration-ognl.jar"/><classpathentry kind="lib" path="build/lib/merge/ognl.jar"/><classpathentry kind="lib" path="build/lib/merge/org.apache.taglibs.taglibs-standard-impl.jar"/><classpathentry kind="lib" path="build/lib/merge/org.apache.taglibs.taglibs-standard-spec.jar"/><classpathentry kind="lib" path="build/lib/merge/org.eclipse.jetty.apache-jsp.jar"/><classpathentry kind="lib" path="build/lib/merge/org.eclipse.jetty.orbit.org.eclipse.jdt.core.jar"/><classpathentry kind="lib" path="build/lib/merge/org.mortbay.jasper.apache-el.jar"/><classpathentry kind="lib" path="build/lib/merge/org.mortbay.jasper.apache-jsp.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-api.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-client.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-common.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-server.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-servlet.jar"/><classpathentry kind="lib" path="build/lib/src/ant-jive-edition-sources.jar"/><classpathentry kind="lib" path="build/lib/src/slf4j-api-sources.jar"/><classpathentry kind="lib" path="build/lib/src/slf4j-log4j12-sources.jar"/><classpathentry kind="output" path="work/classes"/> </classpath>
【3】利用 ant 編譯openfire 源碼
step5)?ant 編譯項目: build/build.xml ->run as -> ant build -> 執行ant編譯源碼 ;?編程成功后,會在項目 根目錄下生成兩個新的文件夾:target 和 work 。
  
【4】運行 openfire 項目 step6)Build Path配置中把? /openfirec/src/i18n 、/openfire/src/resources/jar 、/openfire/build/lib/dist 文件夾添加到 Source 中
 
 
step7)配置啟動參數: run ->run configurations?
 
 
 
 
 
【5】運行結果 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/classical_books/asiainfo/eclipse_one/openfire_src_4_0_2/openfire_src/build/lib/dist/slf4j-log4j12.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/classical_books/asiainfo/eclipse_one/openfire_src_4_0_2/openfire_src/build/lib/ant/slf4j-simple.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] Openfire 4.0.2 [Jul 10, 2016 2:00:17 PM] Admin console listening at http://lenovo-pc:9090 //(表明管理器控制臺 正在監聽9090 端口) 最后: 接著輸入?http://localhost:9090?, 進入控制臺進行 openfire 的相關配置, (就到這里了,接下來的steps 都比較簡單了)
 
 
                            
                        
                        
                        【1】import steps step1)download source code from?http://www.igniterealtime.org/downloads/source.jsp(this is our target link)?, download installation release from?http://www.igniterealtime.org/downloads/, also you can download source code from github via?https://github.com/igniterealtime, and also you can checkout the openfire source code history releases from?https://github.com/igniterealtime/Openfire/releases
step2)將該 source code zip 文件解壓到某個文件夾下,如 eclipse_one 文件夾下;拷貝 eclipse_one\openfire_src_4_0_2\openfire_src\build\eclipse 中的所有文件到 eclipse_one\openfire_src_4_0_2\openfire_src 目錄下,重命名它們的文件名,加上前綴 . 即可(這需要在win 命令行 下通過 rename 完成)(注意,下載下來的 openfire 源碼沒有 target 和 work 兩個文件夾,這兩個文件夾是ant 編譯后生成的,這在后面會講到)
Attention)本文 README 已經說到了, github作者源碼中的 jar 包 有些 導入的不夠全面,這些jar 的導入聲明 在 .classpath 文件中;當我們在 eclipse中 添加 jar 文件到 build path 的時候,實際上是在修改這個 .classpath 文件中的 jar 包聲明;(由于其jar 導入的不夠全面,本文會在下面給出 解決方法)
step3)然后打開Eclipse,選擇 File –> Import… –> Existing Projects into Workspace, copy D:\classical_books\asiainfo\eclipse_one\openfire_src_4_0_2\openfire_src 到 select root directory(當然,這里我之前導入過,所以不能再次導入,只是為了說明這個 case, 截圖而已)
step4)導入后,你會發現,項目會出現 紅色的感嘆號,這說明,我們的 build path 中的jar 導入路徑有問題;光標到項目->右鍵->build path -> Libraries (我這里的項目沒有紅色感嘆號,是因為我理清了 jar 包的導入路徑,下面會給出 導入全部 jar的正確方式);
【2】proble+solutions(對的,這里有兩種解決方法) 1)problem:正如README 所說,github raw source code 中的jar導入路徑不夠全面(即 .classpath 文件中聲明導入jar 的導入路徑有問題,或其根本就不存在); 2)solutions 2.1)solution1:你可以直接下載我的 .classpath 并覆蓋 你項目下的 .classpath,重啟 eclipse 即可(因為,我已經理清了 jar 包的導入路徑,所以你只需要將其 正確的 導入路徑描述(.classpaht) 覆蓋原來的 ?.classpath 即可);(down site?https://github.com/pacosonTang/core-java-volume/blob/master/openfire_supplement/.classpath) 2.2)solution2:手動理清 jar包的導入路徑;首先,需要在 java build path 中 將 缺少的 jar 全部 移除,然后添加 項目中的 沒有導入的jar包 到 build path;
Supplement)通過分析 .classpath 文件,你會發現, openfire 中的jar 存在于 build/lib 及其子文件夾下面 和 存在于 各個plugins 文件夾下面;其代碼(.classpath)聲明如下:(這就是為什么我們需要添加 原作者遺漏的本應該 導入jar 的原因) <?xml version="1.0" encoding="UTF-8"?> <classpath><classpathentry kind="src" path="src/java"/><classpathentry kind="src" path="src/i18n"/><classpathentry kind="src" path="build/lib/dist"/><classpathentry kind="src" path="src/resources/jar"/><classpathentry kind="src" output="work/plugins-dev/broadcast/target/classes" path="src/plugins/broadcast/src/java"/><classpathentry kind="src" output="work/plugins-dev/clientControl/target/classes" path="src/plugins/clientControl/src/java"/><classpathentry kind="src" output="work/plugins-dev/contentFilter/target/classes" path="src/plugins/contentFilter/src/java"/><classpathentry kind="src" output="work/plugins-dev/dbaccess/target/classes" path="src/plugins/dbaccess/src/java"/><classpathentry kind="src" output="work/plugins-dev/emailListener/target/classes" path="src/plugins/emailListener/src/java"/><classpathentry kind="src" output="work/plugins-dev/fastpath/target/classes" path="src/plugins/fastpath/src/java"/><classpathentry kind="src" output="work/plugins-dev/gojara/target/classes" path="src/plugins/gojara/src/java"/><classpathentry kind="src" output="work/plugins-dev/jingleNodes/target/classes" path="src/plugins/jingleNodes/src/java"/><classpathentry kind="src" output="work/plugins-dev/justmarried/target/classes" path="src/plugins/justmarried/src/java"/><classpathentry kind="src" output="work/plugins-dev/kraken/target/classes" path="src/plugins/kraken/src/java"/><classpathentry kind="src" output="work/plugins-dev/loadStats/target/classes" path="src/plugins/loadStats/src/java"/><classpathentry kind="src" output="work/plugins-dev/monitoring/target/classes" path="src/plugins/monitoring/src/java"/><classpathentry kind="src" output="work/plugins-dev/motd/target/classes" path="src/plugins/motd/src/java"/><classpathentry kind="src" output="work/plugins-dev/nodejs/target/classes" path="src/plugins/nodejs/src/java"/><classpathentry kind="src" output="work/plugins-dev/packetFilter/target/classes" path="src/plugins/packetFilter/src/java"/><classpathentry kind="src" output="work/plugins-dev/presence/target/classes" path="src/plugins/presence/src/java"/><classpathentry kind="src" output="work/plugins-dev/registration/target/classes" path="src/plugins/registration/src/java"/><classpathentry kind="src" output="work/plugins-dev/search/target/classes" path="src/plugins/search/src/java"/><classpathentry kind="src" output="work/plugins-dev/stunserver/target/classes" path="src/plugins/stunserver/src/java"/><classpathentry kind="src" output="work/plugins-dev/subscription/target/classes" path="src/plugins/subscription/src/java"/><classpathentry kind="src" output="work/plugins-dev/userCreation/target/classes" path="src/plugins/userCreation/src/java"/><classpathentry kind="src" output="work/plugins-dev/userImportExport/target/classes" path="src/plugins/userImportExport/src/java"/><classpathentry kind="src" output="work/plugins-dev/userservice/target/classes" path="src/plugins/userservice/src/java"/><classpathentry kind="src" output="work/plugins-dev/xmldebugger/target/classes" path="src/plugins/xmldebugger/src/java"/><classpathentry kind="src" path="src/test/java"/><classpathentry kind="src" path="src/test/throttletest/src"/><classpathentry kind="lib" path="build/lib/ant/ant-contrib.jar"/><classpathentry kind="lib" path="build/lib/cglib-nodep.jar"/><classpathentry kind="lib" path="build/lib/dist/hsqldb.jar"/><classpathentry kind="lib" path="build/lib/dist/jtds.jar"/><classpathentry kind="lib" path="build/lib/dist/mail.jar"/><classpathentry kind="lib" path="build/lib/dist/mysql.jar"/><classpathentry kind="lib" path="build/lib/dist/postgres.jar"/><classpathentry kind="lib" path="build/lib/dist/slf4j-log4j12.jar"/><classpathentry kind="lib" path="build/lib/i4jruntime.jar"/><classpathentry kind="lib" path="build/lib/jmock-junit4.jar"/><classpathentry kind="lib" path="build/lib/jmock-legacy.jar"/><classpathentry kind="lib" path="build/lib/jmock.jar"/><classpathentry kind="lib" path="build/lib/junit.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-codec.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-httpclient.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-lang.jar"/><classpathentry kind="lib" path="build/lib/merge/commons-logging.jar"/><classpathentry kind="lib" path="build/lib/merge/concurrentlinkedhashmap-lru-1.0_jdk5.jar"/><classpathentry kind="lib" path="build/lib/merge/dbutil.jar"/><classpathentry kind="lib" path="build/lib/merge/dom4j.jar"/><classpathentry kind="lib" path="build/lib/merge/jaxen.jar"/><classpathentry kind="lib" path="build/lib/merge/jdom.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-continuation.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-http.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-io.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-security.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-server.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-servlet.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-util.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-webapp.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-xml.jar"/><classpathentry kind="lib" path="build/lib/merge/jmdns.jar"/><classpathentry kind="lib" path="build/lib/merge/jzlib.jar"/><classpathentry kind="lib" path="build/lib/merge/libidn.jar"/><classpathentry kind="lib" path="build/lib/merge/log4j.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-core.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-filter-compression.jar"/><classpathentry kind="lib" path="build/lib/merge/proxool.jar"/><classpathentry kind="lib" path="build/lib/merge/rome-fetcher.jar"/><classpathentry kind="lib" path="build/lib/merge/rome.jar"/><classpathentry kind="lib" path="build/lib/merge/shaj.jar"/><classpathentry kind="lib" path="build/lib/merge/sitemesh.jar"/><classpathentry kind="lib" path="build/lib/merge/slf4j-api.jar"/><classpathentry kind="lib" path="build/lib/merge/standard.jar"/><classpathentry kind="lib" path="build/lib/merge/stringprep.jar"/><classpathentry kind="lib" path="build/lib/merge/tinder.jar"/><classpathentry kind="lib" path="build/lib/merge/xpp3.jar"/><classpathentry kind="lib" path="build/lib/objenesis.jar"/><classpathentry kind="lib" path="build/lib/src/commons-lang-sources.jar"/><classpathentry kind="lib" path="build/lib/ant/xmltask.jar"/><classpathentry kind="lib" path="src/plugins/clientControl/lib/commons-fileupload-1.0.jar"/><classpathentry kind="lib" path="src/plugins/fastpath/lib/commons-fileupload-1.0.jar"/><classpathentry kind="lib" path="src/plugins/fastpath/lib/lucene.jar"/><classpathentry kind="lib" path="src/plugins/fastpath/lib/xstream.jar"/><classpathentry kind="lib" path="src/plugins/gojara/lib/json.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/concurrent.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/dwr.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/httpclient.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/httpcore.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jainsipapi.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jainsipri.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jakarta-regexp.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jcip-annotations.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jggapi.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jml.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/joscar-common.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/joscar-protocol.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jqql.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/jsocks.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/json.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/martyr.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/msim.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/openymsg.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/smack.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/smackx.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/stcomm.jar"/><classpathentry kind="lib" path="src/plugins/kraken/lib/xmlrpc.jar"/><classpathentry kind="lib" path="src/plugins/jingleNodes/lib/jnsapi.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/dwr.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/itext.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/jcommon.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/jfreechart.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/jrobin.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/lucene.jar"/><classpathentry kind="lib" path="src/plugins/monitoring/lib/picocontainer.jar"/><classpathentry kind="lib" path="src/plugins/registration/lib/recaptcha4j.jar"/><classpathentry kind="lib" path="src/plugins/sip/lib/JainSipApi1.1.jar"/><classpathentry kind="lib" path="src/plugins/sip/lib/nist-sip-1.2.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/commons-fileupload-1.0.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/isorelax.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/msv.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/relaxngDatatype.jar"/><classpathentry kind="lib" path="src/plugins/userImportExport/lib/xsdlib.jar"/><classpathentry kind="lib" path="src/test/throttletest/build/lib/smack.jar"/><classpathentry kind="lib" path="src/test/throttletest/build/lib/smackx.jar"/><classpathentry kind="lib" path="src/web/WEB-INF/lib/commons-fileupload.jar"/><classpathentry kind="lib" path="src/web/WEB-INF/lib/commons-io.jar"/><classpathentry kind="lib" path="src/web/WEB-INF/lib/dwr.jar"/><classpathentry kind="lib" path="build/lib/merge/servlet-api.jar"/><classpathentry kind="lib" path="build/lib/ant/ant-junit.jar"/><classpathentry kind="lib" path="build/lib/ant/ant-junit4.jar"/><classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/><classpathentry kind="lib" path="src/plugins/stunserver/lib/jstun-0.6.1.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-jmx.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-integration-jmx.jar"/><classpathentry kind="lib" path="build/lib/dist/bcpg-jdk15on.jar"/><classpathentry kind="lib" path="build/lib/dist/bcpkix-jdk15on.jar"/><classpathentry kind="lib" path="build/lib/dist/bcprov-jdk15on.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-servlets.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-client.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-core.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-http-common.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-http-server.jar"/><classpathentry kind="lib" path="build/lib/merge/spdy-server.jar"/><classpathentry kind="lib" path="build/lib/merge/javax-websocket-client-impl.jar"/><classpathentry kind="lib" path="build/lib/merge/javax-websocket-server-impl.jar"/><classpathentry kind="lib" path="src/plugins/callbackOnOffline/lib/javax.ws.rs-api-2.0.1.jar"/><classpathentry kind="lib" path="src/plugins/userservice/lib/jersey-bundle-1.18.jar"/><classpathentry kind="lib" path="build/lib/hamcrest-core.jar"/><classpathentry kind="lib" path="build/lib/jaxb-api.jar"/><classpathentry kind="lib" path="build/lib/ant/jugbbant-1.7.jar"/><classpathentry kind="lib" path="build/lib/ant/slf4j-simple.jar"/><classpathentry kind="lib" path="build/lib/ant/xalan.jar"/><classpathentry kind="lib" path="build/lib/dist/javax.websocket-api.jar"/><classpathentry kind="lib" path="build/lib/dist/npn-boot.jar"/><classpathentry kind="lib" path="build/lib/merge/javassist.jar"/><classpathentry kind="lib" path="build/lib/merge/javax.websocket-api.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-plus.jar"/><classpathentry kind="lib" path="build/lib/merge/jetty-schemas.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-integration-beans.jar"/><classpathentry kind="lib" path="build/lib/merge/mina-integration-ognl.jar"/><classpathentry kind="lib" path="build/lib/merge/ognl.jar"/><classpathentry kind="lib" path="build/lib/merge/org.apache.taglibs.taglibs-standard-impl.jar"/><classpathentry kind="lib" path="build/lib/merge/org.apache.taglibs.taglibs-standard-spec.jar"/><classpathentry kind="lib" path="build/lib/merge/org.eclipse.jetty.apache-jsp.jar"/><classpathentry kind="lib" path="build/lib/merge/org.eclipse.jetty.orbit.org.eclipse.jdt.core.jar"/><classpathentry kind="lib" path="build/lib/merge/org.mortbay.jasper.apache-el.jar"/><classpathentry kind="lib" path="build/lib/merge/org.mortbay.jasper.apache-jsp.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-api.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-client.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-common.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-server.jar"/><classpathentry kind="lib" path="build/lib/merge/websocket-servlet.jar"/><classpathentry kind="lib" path="build/lib/src/ant-jive-edition-sources.jar"/><classpathentry kind="lib" path="build/lib/src/slf4j-api-sources.jar"/><classpathentry kind="lib" path="build/lib/src/slf4j-log4j12-sources.jar"/><classpathentry kind="output" path="work/classes"/> </classpath>
【3】利用 ant 編譯openfire 源碼
step5)?ant 編譯項目: build/build.xml ->run as -> ant build -> 執行ant編譯源碼 ;?編程成功后,會在項目 根目錄下生成兩個新的文件夾:target 和 work 。
【4】運行 openfire 項目 step6)Build Path配置中把? /openfirec/src/i18n 、/openfire/src/resources/jar 、/openfire/build/lib/dist 文件夾添加到 Source 中
step7)配置啟動參數: run ->run configurations?
把默認name:New_configuration 修改成:ServerStarter。
選中Main選項卡,點擊Browse按鈕選擇 openfire_src 項目;單擊Search 按鈕輸入:ServerStarter 自動過濾后選擇:ServerStarter – org.jivesoftware.openfire.starter:
選中Arguments選項卡,在VM arguments中填入:
-DopenfireHome=${workspace_loc:openfire}/target/openfire
注意:項目路徑 ${workspace_loc:openfire}
 
 
選中Common選項卡,將Debug和Run打鉤(方便之后快速啟動),然后點擊apply,再點擊run:
【5】運行結果 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/classical_books/asiainfo/eclipse_one/openfire_src_4_0_2/openfire_src/build/lib/dist/slf4j-log4j12.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/classical_books/asiainfo/eclipse_one/openfire_src_4_0_2/openfire_src/build/lib/ant/slf4j-simple.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] Openfire 4.0.2 [Jul 10, 2016 2:00:17 PM] Admin console listening at http://lenovo-pc:9090 //(表明管理器控制臺 正在監聽9090 端口) 最后: 接著輸入?http://localhost:9090?, 進入控制臺進行 openfire 的相關配置, (就到這里了,接下來的steps 都比較簡單了)
總結
以上是生活随笔為你收集整理的import openfire4.0.2 source code in eclipse的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 对号“√”怎么打?聊天中怎么输入对号“√
- 下一篇: 让WPS表格增加筛选(wps表格里的筛选
