2015-10-13 3 views
1

Я запускаю ejabberd и модуль ejabberd_xmlrpc - https://www.ejabberd.im/ejabberd_xmlrpc В ссылке Я вижу клиентский модуль python, php и xmlrpc с контролем доступа. Как мы можем написать один и тот же с помощью Java клиентаКак сделать доступ на основе xmlrpc-вызова для ejabberd с Java-клиента?

Вот мой код:

 /* Code for ejabberd */   
    try { 
     XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); 
     config.setServerURL(new URL("http://ejabberd.sandwitch.in:4560")); 
     config.setBasicUserName("[email protected]"); 
     config.setBasicPassword("freebsd"); 
     config.setConnectionTimeout(xmlrpcConnTimeout); 
     config.setReplyTimeout(xmlrpcReplyTimeOut); 
     XmlRpcClient client = new XmlRpcClient(); 
     client.setConfig(config); 

     /* Command string */ 
     String command = "register"; 

     /* Parameters as struct */ 
     Map struct = new HashMap(); 
     struct.put("user", "nishant"); 
     struct.put("host", "ejabberd.sandwitch.in"); 
     struct.put("password", "nishant"); 

     Map struct1 = new HashMap(); 
     struct1.put("user", "arbit6"); 
     struct1.put("host", "ejabberd.sandwitch.in"); 
     struct1.put("password", "arbit6");   

     Object[] params = new Object[]{struct, struct1}; 
     HashMap<Object, Object> hashMap = (HashMap<Object, Object>) client.execute(command, params); 
     for (Object obj : hashMap.keySet()) { 
      System.out.println(ToStringBuilder.reflectionToString(obj)); 
     } 
     for (Object obj : hashMap.values()) { 
      System.out.println(ToStringBuilder.reflectionToString(obj)); 
     } 
     System.out.println(ToStringBuilder.reflectionToString(hashMap.get("text"))); 
    } catch (Exception e) { 
     System.out.println(e); 
    } 

Но это дает неизвестный регистр вызова.

ответ

0

Исправлено из-за изменения хоста в первой структуре на сервер. Виноват.