miércoles, 27 de marzo de 2013

JSON WebService Liferay 6.1 (GA2) (Queja)

Este es un post pequeño, y quizás un poco fastidiado por algo que encontré en esta nueva versión de Liferay 6.1 GA2 (es decir, la 6.1.1)

Para crear un JSON WebService, basta con crear un Service en el Portlet y ya está publicado. (Leer aquí http://www.liferay.com/community/wiki/-/wiki/Main/JSON+Web+Services)

Si usamos Tomcat, no existe ningún problema. Es más, podemos ver el API WebService en una web para hacer las pruebas desde la misma web. Por ejemplo: si creamos un portlet llamado "Test-portlet" y creamos un servicio llamado "Calc", podemos entrar a http://localhost:8080/Test-portlet/api/jsonws y vemos todo el API.

Pero... si usamos el GlassFish, no aparecerá la página. Según la gente de LR, cada contenedor tiene manera diferente de reconocer su contexto. Me consta: depuré el código fuente, y desde GlassFish devuelve el contexto "null" mientras que con tomcat devuelve el contexto (o sea, Test-portlet) Y la salida que me dan es llamar a un URL con un formato especial para poder usar el servicio.
Es decir, así

http://localhost:8080/api/secure/jsonws/Test-portlet.calc/sumar/a/3/b/4

Ver: http://issues.liferay.com/browse/LPS-33791

En fin, es opensource, así que quiero darme un tiempo para corregir este problema. Porque si uno necesita implementar liferay en un contenedor que no sea Tomcat - por politicas de la empresa - entonces, tendremos serios problemas.