隨筆-57  評(píng)論-117  文章-1  trackbacks-0

          上一篇介紹了Openfire開(kāi)源聊天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.org/jwchat/download/

          Zip下載:http://downloads.sourceforge.net/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ì)方便你訪問(wèn)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 hoojo_@126.com
           * @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沒(méi)有WEB-INF、web.xml是無(wú)法運(yùn)行的。

          JabberHTTPBind是jwchat進(jìn)行http bind通信的一種方式,它可以讓jwchat和openfire進(jìn)行鏈接通信。

          站點(diǎn):http://blog.jwchat.org/jhb/

          下載地址:http://blog.jwchat.org/download/JabberHTTPBind-1.1.1.zip

          JabberHTTPBind會(huì)依賴xalan的library庫(kù)

          下載站點(diǎn):http://xml.apache.org/xalan-j/downloads.html

          下載目錄:http://labs.renren.com/apache-mirror/xml/xalan-j/

           

          4、 下載完成后,將JabberHTTPBind的zip解壓出來(lái)的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/
                   <!-- 這里的修改主頁(yè)是對(duì)應(yīng)上面的config.js,如果config.js的httpbase配置是/jwchat/,那這里的就不用修改了 -->
          </servlet-mapping>

          6、 啟動(dòng)tomcat后,訪問(wèn)http://localhost:8080/jwchat/

          如果登錄出現(xiàn)Service unavailable這個(gè)問(wèn)題,那么會(huì)有以下幾種情況:

          A、 表明服務(wù)器不可用,可能是openfire服務(wù)器沒(méi)有啟動(dòng),

          B、 webapps\jwchat \config.js的配置有問(wèn)題,如var SITENAME = "localhost";和openfire服務(wù)器地址沒(méi)有對(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、 用戶沒(méi)有注冊(cè)

          B、 openfire的證書(shū)(C:\Program Files\openfire\resources\security)沒(méi)有安裝到相應(yīng)的jdk的C:\Program Files\Java\jre6\lib\security目錄下

          如果出現(xiàn)這種異常信息:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed也表明是安全證書(shū)的問(wèn)題;

          關(guān)于解決ssl驗(yàn)證,網(wǎng)上有人說(shuō)在jsjac.js中的if(this.has_sasl) 這行前面加上this.has_sasl = false;來(lái)取消ssl安全證書(shū)的驗(yàn)證。

          C、 如果你的工程名稱不是jwchat,建議把它修改成jwchat并且修改config.xml的相關(guān)鏈接的配置(httpbase)

          D、 還有可能是你當(dāng)前的用戶沒(méi)有注冊(cè),這個(gè)時(shí)候你可以注冊(cè)一個(gè)用戶或是在openfire控制臺(tái)的用戶組中添加一個(gè)用戶,然后再等了看看是否存在這個(gè)問(wèn)題。

           

          8、 修改服務(wù)器名稱

          點(diǎn)擊服務(wù)器à服務(wù)器管理器à編輯屬性 修改服務(wù)器名稱

          image

          修改后的服務(wù)器名稱

          image

          出現(xiàn)嘆號(hào),我們要?jiǎng)h除安全證書(shū),點(diǎn)擊服務(wù)器à服務(wù)器設(shè)置à服務(wù)器安全證書(shū)刪掉這里的證書(shū)。

          image

          刪除后,在當(dāng)前頁(yè)面會(huì)出現(xiàn)提示,然后按照提示點(diǎn)擊相應(yīng)的鏈接,重啟服務(wù)器,然后登陸,再生成證書(shū)

          image

          生成證書(shū)需要點(diǎn)時(shí)間,然后生成完成后,手動(dòng)重啟openfire服務(wù)器,再次登陸發(fā)現(xiàn)警告沒(méi)有了。

            image

          9、 在服務(wù)器端增加配置

          xmpp.httpbind.client.requests.polling = 0

          xmpp.httpbind.client.requests.wait = 10

          作者:hoojo
          出處:
          blog:http://blog.csdn.net/IBM_hoojo
                   http://hoojo.cnblogs.com
          本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。


          版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處 本文出自:
          分享道版權(quán)所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處,謝謝

          評(píng)論:
          # re: Jwchat 的安裝和配置、Service unavailable、Authorization failed問(wèn)題匯總[未登錄](méi) 2012-08-15 15:54 | bin
          我在登陸的時(shí)候報(bào)Registration failed! please choose a different username  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 南投市| 承德市| 满城县| 威信县| 灌阳县| 宿松县| 津南区| 麻城市| 台中市| 吴江市| 磐安县| 新宁县| 梁平县| 额尔古纳市| 甘泉县| 莫力| 牙克石市| 南平市| 永春县| 旅游| 林芝县| 囊谦县| 贵州省| 上饶市| 无锡市| 启东市| 彭水| 绿春县| 拜泉县| 新龙县| 孙吴县| 丹棱县| 青冈县| 永新县| 聂拉木县| 富裕县| 文成县| 桂阳县| 苍梧县| 屏山县| 舟曲县|