You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-espanol@openmeetings.apache.org by Ramón Zárate Moedano <ho...@gmail.com> on 2017/04/12 04:10:20 UTC
WebService para contar usuarios en salas
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":"
root@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.