Buenas noches a todos: OM 3.2.0 (Revisión 1782178) Moodle 3.2 OM-moodle-plugin 2.0.2.3 2017031011
Estoy haciendo una integración de moodle 3.2 con openmeetings(3.2.0) a través del plugin de om para moodle. Además de las funcionalidades que ofrece el plugin, necesito agregar la funcionalidad de saber cuantos usuarios concurrentes están en cada sala de om. Para realizar dicha tarea, tengo el webservice RoomWebService ( http://openmeetings.apache.org/openmeetings-webservice/apidocs/index.html). Usando el servicio "room" y el método "counters". Adjunto su documentación: /* START: DOCUMENTATION */ counters @GET @Path(value="/counters") public List<RoomCountBean> counters(@QueryParam(value="sid") String sid, @QueryParam(value="id") List<Long> ids) throws org.apache.openmeetings.webservice.error.ServiceException Returns current users for rooms ids Parameters: sid - - The SID of the User. This SID must be marked as Loggedin ids - - id of the room you need counters for Returns: - current users for rooms ids Throws: org.apache.openmeetings.webservice.error.ServiceException /* END: DOCUMENTATION */ Con esta documentación se contruye una url que queda de la siguiente manera: http://OM-Server-IP:5080/meetingcenter/services/room/counters/?&sid=d69ec56c-a2e9-4fd5-9712-e460748dc1db&id=5 Donde meetingcenter es la carpeta de instalación de om (contexto personalizado) room/counters es el servicio con el método del llamado sid=d69ec56c-a2e9-4fd5-9712-e460748dc1db parámetro de login (token) id=5 que sería el id de la sala que se quiere consultar. Creo que éste último es el que tiene el problema. La documentación hace referencia a tipo List<Long>, por lo que podría ser un arreglo. Éstos han sido las respuestas según los valores que se han enviado en la petición para éste último parámetro id=5: "No message body writer has been found for class java.util.ArrayList, ContentType: application/json" id=[5]: (NULL). En la consola del navegador aparece estado 404 id={5}: (NULL). En la consola del navegador aparece estado 400 id[]=5: "HTTP Status 500 - Failed to execute query "SELECT r FROM Room r WHERE r.deleted = false AND r.id IN :ids". Check the query syntax for correctness. See nested exception for details." id[0]=5: "HTTP Status 500 - Failed to execute query "SELECT r FROM Room r WHERE r.deleted = false AND r.id IN :ids". Check the query syntax for correctness. See nested exception for details." Al parecer no estoy enviando el arreglo de id's de salas de manera correcta. Para corroborar que se está enviando información correcta como hash se solicita información a otro servicio web con resultados positivos. Por ejemplo: http://OM-Server-IP:5080/meetingcenter/services/user?sid=f02e731d-2fa4-496c-a78f-86f9d6c6b382 y la respuesta es un arreglo que entrega la lista de todos los usuarios que se tienen en esta instancia: {"userDTO":[{"address":{"country":"US","deleted":false,"email":" r...@domain.com ","id":1},"firstname":"firstname","id":1,"languageId":8,"lastname":"lastname","login":"root","rights":["Admin","Soap","Room","Login","Dashboard"],"timeZoneId":"America/Mexico_City","type":"user"}]} De antemano agradezco cualquier ayuda.