2016-07-23 185 views
0

我是openfire xmpp協議的新手。我已成功創建聊天室,現在我想使用REST API從房間中刪除房間成員。 我已經提到這裏提到的link。 刪除聊天室的會員。使用openfire服務器從聊天室刪除房間成員

@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(); 
     } 

    } 

我有錯誤

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

這裏的Openfire控制檯」日誌文件

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) 

如何得到解決這個問題呢?

回答

0

如果使用較舊版本的openfire,則無法在請求路徑中使用JID。 (rajesh3 @孔雀馬力)。 請嘗試只是rajesh3。

+0

我嘗試了rajesh3,但它不適合我。而我用的openfire版本是4.0.2。 –

0

在文檔有可能讀這樣的例子:

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

所以,你的嘗試是從「會員」用戶「rajesh3 @孔雀馬力」的聊天室刪除名爲「聊天室」,我不我認爲這可以工作!

您需要的聊天室名稱(ES:[email protected]),以及之前的所有,檢查是否[email protected]它已經這個聊天室的成員(上Openfire的管理檢查,以避免錯誤:

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

如果要刪除rajesh3 @孔雀馬力在全球模式,設置global作爲roomName


編輯:由WA y,錯誤報告它是關於一個未正確加載的插件,它對刪除房間成員操作沒有影響。