Jwchat 的安裝和配置,、Service unavailable、Authorization failed問題匯總上一篇介紹了Openfire開源聊天IM服務(wù)器的安裝:http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html 這篇文章介紹Jwchat的安裝和配置
首先Jwchat的配置和安裝需要具備的環(huán)境: Tomcat 5.0.28+/Tomcat 6 JDK 1.6+ Openfire 3.7.1 1,、 下載jwchat工程文件 下載站點(diǎn):http://blog./jwchat/download/ Zip下載:http://downloads./jwchat/jwchat-1.0.zip?use_mirror=
2,、 下載完成后,將jwchat-1.0.zip解壓到你的tomcat的webapps目錄,,將jwchat-1.0命名為jwchat,,如果不這樣的話,可能會(huì)出現(xiàn)錯(cuò)誤,,如Authorization failed,。至少這樣會(huì)方便你訪問jwchat工程。 然后將index.html.zh_CN等這樣帶有*.后綴.zh_CN的這樣的文件的.zh_CN都刪掉,,進(jìn)行重命名,。.zh_CN是表示中文版的,當(dāng)然你也可以直接將*.后綴.后綴的文件進(jìn)行重命名,,那樣就是默認(rèn)的英文版的了,。 批量命名工具類: package com.hoo.util; import java.io.File; /** * <b>function:</b> 文件命名工具類 * @author hoojo * @createDate 2012-5-14 下午01:58:14 * @file FileRenameUtils.java * @package com.hoo.util * @blog http://blog.csdn.net/IBM_hoojo * @email [email protected] * @version 1.0 */ public abstract class FileRenameUtils { private final static String FILE_PATH = "D:\\apache-tomcat-6.0.33\\webapps\\jwchat"; /** * <b>function:</b> 將指定目錄下的文件的type類型的文件,進(jìn)行重命名,,命名后的文件將去掉type * <p>example: 如果type = html,; index.html.html -> index.html</p> * <p>example: 如果type = zh_CN; index.html.zh_CN -> index.html</p> * @author hoojo * @createDate 2012-5-16 下午02:16:48 * @param path * @param type */ public static void rename(String path, String type) { if (path == null || "".equals(path)) { path = FILE_PATH; } File dir = new File(path); File[] list = dir.listFiles(); for (File file : list) { String name = file.getName(); String[] s = name.split("\\."); if (s.length == 3 && type.equals(s[2])) { System.out.println(s[0] + "--" + s[1] + "--" + s[2]); file.renameTo(new File(path + "/" + s[0] + "." + s[1])); } } } public static void main(String[] args) { FileRenameUtils.rename("D:\\apache-tomcat-6.0.33\\webapps\\jwchat", "zh_CN"); } } 3,、 下載JabberHTTPBind這個(gè)包,,因?yàn)橹苯酉螺d的jwchat沒有WEB-INF、web.xml是無法運(yùn)行的,。 JabberHTTPBind是jwchat進(jìn)行http bind通信的一種方式,,它可以讓jwchat和openfire進(jìn)行鏈接通信。 站點(diǎn):http://blog./jhb/ 下載地址:http://blog./download/JabberHTTPBind-1.1.1.zip JabberHTTPBind會(huì)依賴xalan的library庫 下載站點(diǎn):http://xml./xalan-j/downloads.html 下載目錄:http://labs.renren.com/apache-mirror/xml/xalan-j/
4,、 下載完成后,,將JabberHTTPBind的zip解壓出來的WEB-INF、META-INF一并放到剛才的jwchat目錄中,,并且將剛才下載的xalan的xalan.jar,serializer.jar, xercesImpl.jar, xml-apis.jar放到webapps\jwchat\WEB-INF\lib目錄下即可,。
5、 修改jwchat目錄中的相關(guān)配置 修改config.js文件 var BACKENDS = [ { …… }, { …… }, { name:"Open Relay", description:"HTTP Binding backend that allows connecting to any jabber server", httpbase:"/JHB/", /* 修改這里為:/jwchat/JHB/ */ type:"binding", default_server: SITENAME }, { …… } ]; 修改WEB-INF目錄下的web.xml文件 <servlet-mapping> <servlet-name>Jabber HTTP Binding Servlet</servlet-name> <url-pattern>/</url-pattern> url-pattern修改為:/JHB/ <!-- 這里的修改主頁是對(duì)應(yīng)上面的config.js,,如果config.js的httpbase配置是/jwchat/,,那這里的就不用修改了 --> </servlet-mapping> 6,、 啟動(dòng)tomcat后,訪問http://localhost:8080/jwchat/ 如果登錄出現(xiàn)Service unavailable這個(gè)問題,,那么會(huì)有以下幾種情況: A,、 表明服務(wù)器不可用,可能是openfire服務(wù)器沒有啟動(dòng),, B,、 webapps\jwchat \config.js的配置有問題,如var SITENAME = "localhost";和openfire服務(wù)器地址沒有對(duì)應(yīng) C,、 伴隨出現(xiàn):Exception in thread "Thread-34" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found異常,,可能是tomcat版本低于tomcat6或是jwchat缺少相應(yīng)的jar包,如缺少xml的serializer.jar,、xalan.jar,、xercesImpl.jar、xml-apis.jar D,、 如果在滿足了c步驟,有添加jra包還出現(xiàn)Exception in thread "Thread-34" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found異常,,建議刪除tomcat/work目錄下的緩存,,然后重啟tomcat試試
7、 如果登錄出現(xiàn)Authorization failed驗(yàn)證失敗,,那么有以下幾種可能的情況: A,、 用戶沒有注冊(cè) B、 openfire的證書(C:\Program Files\openfire\resources\security)沒有安裝到相應(yīng)的jdk的C:\Program Files\Java\jre6\lib\security目錄下 如果出現(xiàn)這種異常信息:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed也表明是安全證書的問題,; 關(guān)于解決ssl驗(yàn)證,,網(wǎng)上有人說在jsjac.js中的if(this.has_sasl) 這行前面加上this.has_sasl = false;來取消ssl安全證書的驗(yàn)證。 C,、 如果你的工程名稱不是jwchat,,建議把它修改成jwchat并且修改config.xml的相關(guān)鏈接的配置(httpbase) D、 還有可能是你當(dāng)前的用戶沒有注冊(cè),,這個(gè)時(shí)候你可以注冊(cè)一個(gè)用戶或是在openfire控制臺(tái)的用戶組中添加一個(gè)用戶,,然后再等了看看是否存在這個(gè)問題。
8,、 修改服務(wù)器名稱 點(diǎn)擊服務(wù)器à服務(wù)器管理器à編輯屬性 修改服務(wù)器名稱 修改后的服務(wù)器名稱 出現(xiàn)嘆號(hào),,我們要?jiǎng)h除安全證書,點(diǎn)擊服務(wù)器à服務(wù)器設(shè)置à服務(wù)器安全證書刪掉這里的證書,。 刪除后,,在當(dāng)前頁面會(huì)出現(xiàn)提示,然后按照提示點(diǎn)擊相應(yīng)的鏈接,,重啟服務(wù)器,,然后登陸,,再生成證書 生成證書需要點(diǎn)時(shí)間,然后生成完成后,,手動(dòng)重啟openfire服務(wù)器,,再次登陸發(fā)現(xiàn)警告沒有了。 9,、 在服務(wù)器端增加配置 xmpp.httpbind.client.requests.polling = 0 xmpp.httpbind.client.requests.wait = 10 出處:http://www.cnblogs.com/hoojo/archive/2012/05/17/2506845.html blog:http://blog.csdn.net/IBM_hoojo 本文版權(quán)歸作者和博客園共有,,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,,且在文章頁面明顯位置給出原文連接,,否則保留追究法律責(zé)任的權(quán)利。 版權(quán)所有,,轉(zhuǎn)載請(qǐng)注明出處 本文出自: http://www.cnblogs.com/hoojo/archive/2012/05/17/2506845.html |
|