首先需要下载安装好ejabberd,ejabberd的安装我就先不说了.因为我也不是很清楚额..嗯....说下我在开发ejabberd中遇到的几个问题吧.
[1].安装好后不能注册
ejabberd 配置问题,
如果用的是 ejabberd 15.07, 如下操作:
1. 找到:/ejabberd-15.07/conf/ejabberd.yml 文件,
2. 修改ejabberd.yml 文件中:
## To disable in-band registration, replace 'allow' with 'deny'.
register:
all: allow
## 注册权限打开
## Only allow to register from localhost
trusted_network:
all: allow
## loopback: allow
## Do not establish S2S connections with bad servers
## s2s:
## bad_servers: deny
## all: allow
3. 重新启动 ejabberd 服务器 ,就解决了
不是这个版本服务器的话,就按这个原理 修改相应权限就OK了
安装好ejabberd 后,可以下载这个客户端进行相关的测试,
下载链接:http://download.csdn.net/detail/u012930316/9755494
=====================================================
好...下面进入这次java使用xmpprpc结合ejabberd的开发.
首先ejabberd安装配置好后.接的打开这个:
-
port: 4560
module: ejabberd_xmlrpc
access_commands: {}也就是说在ejabberd的配置文件ejabberd.yml 里面的listen: 下面增加这个...至于端口号随便取.听说这里还可以配置个权限保证安全..目前我还不知道怎么弄...
好了,在配置好这个之后就可以开发java这边了.
这里首先是要导入jar包.我这里使用maven进行管理.
org.apache.xmlrpc
xmlrpc-client
3.1.3
导入完jar包后可以写段代码测试下了.下面直接贴代码:
public static void main(String[] args) throws XmlRpcException,
MalformedURLException {
try {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://ip:4560/RPC2"));// 你的ejabberd地址
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
/* Command string */
String command = "check_password";
command = "change_password";
/* Parameters as struct */
Map struct = new HashMap();
// struct.put("user", "456");
// struct.put("host", "local");
// struct.put("password", "123456");
// Object execute = client.execute(command, params);
// 修改密码
struct.put("user", new String("456"));
struct.put("host", new String("local"));// 这里是你配置的虚拟域名
struct. put("newpass", "123");
Object[] params = new Object[]{struct};
// 修改密码的操作.
Object execute = client.execute(command, params);
System.out.println(execute);// 结果信息
} catch (Exception e) {
System.out.println(e);
}
}
我参考资料的地址:https://docs.ejabberd.im/developer/ejabberd-api/admin-api/
全是英文的,而且不是很全..说的也不是很详细,还是靠自己试出来的.....