2016-07-23 87 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,错误报告它是关于一个未正确加载的插件,它对删除房间成员操作没有影响。

相关问题