2016-07-23 21 views
0

Ich bin neu im openfire xmpp-Protokoll. Ich habe chatroom erfolgreich erstellt, jetzt möchte ich Raummitglieder mit REST API aus dem Raum löschen. Ich habe Bezug genommen auf die link erwähnt hier. für löschen Raum Mitglied für Chatroom.Raummitglied aus Chat-Raum mit Openfire-Server löschen

@RequestMapping(value = "leaveGroup", headers = {"ACCEPT=*/*"}, method = RequestMethod.POST, produces = "text/plain") 
    public @ResponseBody 
    String leaveGroup(HttpServletRequest request, HttpServletResponse response) { 

     getRestClient(); 
     try { 
      List<String> memberList = restApiClient.getChatRoom("chatrooms").getMembers(); 
      for (String string : memberList) { 
       System.out.println("user::" + string); 
      } 
      // http://example.org:9090/plugins/restapi/v1/chatrooms/chatrooms/members/[email protected] 

      getJsonFromWEBService("http://192.168.168.24:9090/plugins/restapi/v1/chatrooms/chatrooms/members/[email protected]"); 

      //List<String> memberList1 = restApiClient.getChatRoom("chatrooms").getMembers().remove("[email protected]"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return "leaveGroup"; 
    } 

    public void getJsonFromWEBService(String serviceURL) { 
     URL url; 
     try { 
      System.out.println("serviceURL::" + serviceURL); 
      url = new URL(serviceURL); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      System.out.println("conn::" + conn); 
      conn.setRequestProperty("Authorization", "Basic YWRtaW46MTIzNDU="); 
      conn.setRequestProperty("Content-Type", "application/xml"); 
      conn.setRequestMethod("DELETE"); 
      conn.setDoInput(true); 
      conn.setDoOutput(true); 
      System.out.println("status::"+conn.getResponseCode()); 
      System.out.println("msg::"+conn.getResponseMessage()); 
      System.out.println("req::"+conn.getRequestProperties()); 
      //conn.getOutputStream().write(postDataBytes); 
      conn.disconnect(); 
      System.out.println("end.........................................."); 
     } catch (MalformedURLException ex) { 
      ex.printStackTrace(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 

    } 

Ich habe Fehler

Info: Response status::401 
Info: Response msg::Unauthorized 

hier Openfire Konsole‘Protokolldatei

2016.07.23 12:14:41 org.jivesoftware.openfire.container.PluginManager - error in opening zip file 
java.util.zip.ZipException: error in opening zip file 
at java.util.zip.ZipFile.open(Native Method) 
at java.util.zip.ZipFile.<init>(ZipFile.java:219) 
at java.util.zip.ZipFile.<init>(ZipFile.java:149) 
at java.util.jar.JarFile.<init>(JarFile.java:166) 
at java.util.jar.JarFile.<init>(JarFile.java:130) 
at org.jivesoftware.openfire.container.PluginManager$PluginMonitor.unzipPlugin(PluginManager.java:1069) 
at org.jivesoftware.openfire.container.PluginManager$PluginMonitor.run(PluginManager.java:961) 

Wie dieses Problem erhalten lösen?

Antwort

0

Wenn Sie eine ältere Version von openfire verwenden, können Sie JID nicht im Pfad Ihrer Anfrage verwenden. (rajesh3 @ Pfau-hp). Versuchen Sie stattdessen nur rajesh3.

+0

Ich versuchte für rajesh3, aber es war nicht Arbeit für mich. und ich benutzte openfire Version ist 4.0.2. –

0

In der Dokumentation ist es möglich, diese Beispiele zu lesen:

/chatrooms/{roomName}/{roles}/{name} 

Also Ihr Versuch, es ist aus „Mitglieder“ user „rajesh3 @ Pfau-PS“ auf Chatroom zu entfernen namens „Chatrooms“, i don‘ Ich denke, das kann funktionieren!

Sie müssen den Chatnamen (n: [email protected]) und vor allem prüfen, ob [email protected] es ist schon ein Mitglied dieser Chat (überprüfen auf Openfire Admin-Fehler zu vermeiden:

Admin console -> Uppertab: Group Chat -> select the service -> select your chatroom -> on left "Permissions" -> [email protected] must figure out as "member") 

Wenn Sie wollen, stellen Sie rajesh3 @ Pfau-PS in einem globalen Modus entfernen global als roomName


EDIT: Durch die wa y, der Fehler hat gemeldet, dass es sich um ein Plugin handelt, das nicht korrekt geladen wurde. Es hat keine Auswirkungen auf den Lösch-Room-Member-Vorgang.