Java 向ejabberd发送消息并不';我不工作
我是ejabberd的新手,我正在尝试创建一个java程序,只是为了对服务ejabberd进行一些测试,但是服务器总是有相同的响应 服务器正在运行,因为我可以尝试使用两个pidgin客户端 我正试着跟踪这些样品 关于代码呢Java 向ejabberd发送消息并不';我不工作,java,ejabberd,Java,Ejabberd,我是ejabberd的新手,我正在尝试创建一个java程序,只是为了对服务ejabberd进行一些测试,但是服务器总是有相同的响应 服务器正在运行,因为我可以尝试使用两个pidgin客户端 我正试着跟踪这些样品 关于代码呢 ConnectionConfiguration cc = new ConnectionConfiguration("ip_server", 5222, "domain_defined_in_cfg"); // In ejabberd.cfg -> {hosts, ['
ConnectionConfiguration cc = new ConnectionConfiguration("ip_server", 5222, "domain_defined_in_cfg");
// In ejabberd.cfg -> {hosts, ['domain_defined_in_cfg']}
cc.setDebuggerEnabled(true);
cc.setSASLAuthenticationEnabled(true);
XMPPConnection con = new XMPPConnection(cc);
System.setProperty("smack.debugEnabled", "true");
XMPPConnection.DEBUG_ENABLED = true;
try {
SASLAuthentication.supportSASLMechanism("PLAIN", 0);
con.connect();
//This line returns
/*
No response from the server.:
at org.jivesoftware.smack.SASLAuthentication.bindResourceAndEstablishSession(SASLAuthentication.java:430)
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:331)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:349)
*/
//con.login("user_admin", "password_user_admin");
Packet packet = new Packet() {
@Override
public String toXML() {
//Sample of iq request
StringBuilder sb = new StringBuilder("<iq type=\"get\" to=\"ip_server\">");
sb.append("<query xmlns=\"jabber:iq:version\"/>");
sb.append("</iq>");
return sb.toString();
}
};
con.sendPacket(packet);
} catch (XMPPException xe) {
xe.printStackTrace();
return;
}
ConnectionConfiguration cc=新的连接配置(“ip_服务器”,5222,“域定义在\u cfg中”);
//在ejabberd.cfg->{hosts,['domain_defined_In_cfg']}
cc.setDebuggerEnabled(true);
cc.setaslauthenticationenabled(true);
XMPPConnection con=新的XMPPConnection(cc);
System.setProperty(“smack.debugEnabled”、“true”);
XMPPConnection.DEBUG_ENABLED=true;
试一试{
SASLAuthentication.支持SaslMechanism(“平原”,0);
con.connect();
//这一行返回
/*
服务器没有响应:
位于org.jivesoftware.smack.SASLAuthentication.bindResourceandStablishSession(SASLAuthentication.java:430)
位于org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:331)
位于org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
位于org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:349)
*/
//con.登录(“用户\管理员”、“密码\用户\管理员”);
数据包=新数据包(){
@凌驾
公共字符串toXML(){
//iq请求样本
StringBuilder sb=新的StringBuilder(“”);
某人加上(“”);
某人加上(“”);
使某人返回字符串();
}
};
con.发送包(packet);
}捕获(XMPPException xe){
printStackTrace();
返回;
}
当我发送iq请求的代码或其他类似的
<iq from='user@domain.com' type='get' id='getlist1'>
<query xmlns='jabber:iq:privacy'/>
</iq>
对于服务器,我总是收到相同的响应
<iq id="getlist1" from="domain.com" type="error">
<error code="503" type="CANCEL">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
只要试着按照下面的例子1
登录可能是个问题,但无论如何,我更感兴趣的是为什么我不能向服务器发送消息。或者,我如何以其他方式发送消息?(我也用油灰检查过)
有什么想法吗
谢谢 从您共享的信息来看,您可能实际上没有在ejabberd上成功身份验证:
- connect方法将与ejabberd建立连接
- 必须使用登录方法才能真正登录并与服务交互
cc.setSASLAuthenticationEnabled(false);
然后取消登录调用的注释