Java 向ejabberd发送消息并不';我不工作

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, ['

我是ejabberd的新手,我正在尝试创建一个java程序,只是为了对服务ejabberd进行一些测试,但是服务器总是有相同的响应

服务器正在运行,因为我可以尝试使用两个pidgin客户端

我正试着跟踪这些样品

关于代码呢

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建立连接
  • 必须使用登录方法才能真正登录并与服务交互
可能您为ejabberd配置的身份验证后端不支持SASL

您应该尝试禁用SASL身份验证:

cc.setSASLAuthenticationEnabled(false);
然后取消登录调用的注释