jwchat 的安装和配置、Service unavailable、Authorization failed问题汇总

上一篇介绍了Openfire开源聊天IM服务器的安装:http://blog.csdn.net/ibm_hoojo/article/details/7577763

这篇文章介绍Jwchat的安装和配置

 

首先Jwchat的配置和安装需要具备的环境:

Tomcat 5.0.28+/Tomcat 6

JDK 1.6+

Openfire 3.7.1

1、 下载jwchat工程文件

下载站点: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,如果不这样的话,可能会出现错误,如Authorization failed。至少这样会方便你访问jwchat工程。

然后将index.html.zh_CN等这样带有*.后缀.zh_CN的这样的文件的.zh_CN都删掉,进行重命名。.zh_CN是表示中文版的,当然你也可以直接将*.后缀.后缀的文件进行重命名,那样就是默认的英文版的了。

批量命名工具类:

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类型的文件,进行重命名,命名后的文件将去掉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这个包,因为直接下载的jwchat没有WEB-INF、web.xml是无法运行的。

JabberHTTPBind是jwchat进行http bind通信的一种方式,它可以让jwchat和openfire进行链接通信。

站点:http://blog.jwchat.org/jhb/

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

JabberHTTPBind会依赖xalan的library库

下载站点:http://xml.apache.org/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目录中的相关配置

修改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/
         <!-- 这里的修改主页是对应上面的config.js,如果config.js的httpbase配置是/jwchat/,那这里的就不用修改了 -->
</servlet-mapping>

6、 启动tomcat后,访问http://localhost:8080/jwchat/

如果登录出现Service unavailable这个问题,那么会有以下几种情况:

A、 表明服务器不可用,可能是openfire服务器没有启动,

B、 webapps\jwchat \config.js的配置有问题,如var SITENAME = "localhost";和openfire服务器地址没有对应

C、 伴随出现:Exception in thread "Thread-34" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found异常,可能是tomcat版本低于tomcat6或是jwchat缺少相应的jar包,如缺少xml的serializer.jar、xalan.jar、xercesImpl.jar、xml-apis.jar

D、如果在满足了c步骤,有添加jra包还出现Exception in thread "Thread-34" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found异常,建议删除tomcat/work目录下的缓存,然后重启tomcat试试

 

7、 如果登录出现Authorization failed验证失败,那么有以下几种可能的情况:

A、 用户没有注册

B、 openfire的证书(C:\Program Files\openfire\resources\security)没有安装到相应的jdk的C:\Program Files\Java\jre6\lib\security目录下

如果出现这种异常信息:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed也表明是安全证书的问题;

关于解决ssl验证,网上有人说在jsjac.js中的if(this.has_sasl) 这行前面加上this.has_sasl = false;来取消ssl安全证书的验证。

C、 如果你的工程名称不是jwchat,建议把它修改成jwchat并且修改config.xml的相关链接的配置(httpbase)

D、 还有可能是你当前的用户没有注册,这个时候你可以注册一个用户或是在openfire控制台的用户组中添加一个用户,然后再等了看看是否存在这个问题。

 

8、 修改服务器名称

点击服务器à服务器管理器à编辑属性 修改服务器名称


修改后的服务器名称


出现叹号,我们要删除安全证书,点击服务器à服务器设置à服务器安全证书删掉这里的证书。


删除后,在当前页面会出现提示,然后按照提示点击相应的链接,重启服务器,然后登陆,再生成证书


生成证书需要点时间,然后生成完成后,手动重启openfire服务器,再次登陆发现警告没有了。

  

9、 在服务器端增加配置

xmpp.httpbind.client.requests.polling = 0

xmpp.httpbind.client.requests.wait = 10


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一、apache服务器配置。 我们下载安装的是httpd-2.2.17-win32-x86-no_ssl.msi,安装完成后,我们需要配置一下,由于jwchat是用javacript去和openfire进行通讯的,所以他们之间的通讯是基于http的,但是由于浏览器为了安全性是不允许javascript跨域访问的。我们必须通过别的技术来绕过这限制,所以我们采取apache服务器的重定向功能去突破这个限制。 安装完成后进入到apache的安装目找到conf文件夹下的httpd.conf文件,用记事本打开,把下列几个配置项放开(默认被注释掉了) 1、LoadModule rewrite_module modules/mod_rewrite.so 2、LoadModule proxy_module modules/mod_proxy.so 3、LoadModule proxy_http_module modules/mod_proxy_http.so 然后再在本配置文件的末尾加入如下几行配置 ServerName blzc.com <Directory /var/jwchat> Options +Indexes +MultiViews </Directory> AddDefaultCharset UTF-8 RewriteEngine on ProxyPass /jwchat/http-bind/ http://blzc.com:7070/http-bind/ 在此有必要对proxyPass的参数做些说明 “/jwchat/http-bind/”:jwchat就通过访问http://域名/jwchat/http-bind/地址去和openfire通讯,apache接到请求后就会重新定向到http://blzc.com:7070/http-bind/ “http://blzc.com:7070/http-bind/”:被重新定向的地址,也就是我们的openfire的http访问地址。7070端口是openfire的默认访问端口,当然我们也可以进入openfire进行配置。 二、openfire的配置 安装好openfire后进入web式的管理界面,选择服务器-》服务器管理器-》系统属性 在里边添加两个属性 xmpp.httpbind.client.requests.polling = 0 xmpp.httpbind.client.requests.wait = 10 三、部署jwchat jwchat解压后的文件内容放到apache访问目录/jwchat文件夹下, 然后打开config.js文件,把相应的内容修改为如下的形式 var SITENAME = "blzc.com";//你要访问openfir的域名 name:"Native Binding", description:"Ejabberd's native HTTP Binding backend", httpbase:"/jwchat/http-bind/",//访问openfire的地址 type:"binding", servers_allowed:[SITENAME] 最后再把jwchat文件夹考到apache的htdocs文件夹下,重新启动服务,然后访问http://localhost/jwchat即可。 若出现“authorization failed”,则可能是SSL不支持的原因,需要修改jsjac.js,在if(this.has_sasl) 前面加上this.has_sasl=false;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值