Get it on Google Play

Desarrollo de Servlets sobre módulos OSGI en Liferay 7, mola!

22-12-2017
 
Servlets en Liferay 7

Servlets en Liferay 7

Si hay algo que me gusta de los módulos OSGI es lo elegante que te queda todo, no hace falta configurar ficheros XML y prácticamente puedes tener la lógica de algo en una misma classe. Muy fácil de modularizar y distribuir.

En este artículo veremos la fácil que es crear un Servlet dentro de un módulo OSGI en Liferay 7. Simplemente declaramos una classe que extienda de ‘HttpServlet’ y la anotamos para que el Framework interprete que es un Servlet y como tiene que desplegarlo. Veamos un ejemplo:

@Component(
	immediate = true,
	property = {
		"osgi.http.whiteboard.context.path=/",
		"osgi.http.whiteboard.servlet.name=com.lostsys.formacion.MiServlet",
		"osgi.http.whiteboard.servlet.pattern=/miservlet",
		},
	service = Servlet.class)
public class MiServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		/* Aquí el código a ejecutar para peticiones tipo GET */
		}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		/* Aquí el código a ejecutar para peticiones tipo Post */
		}

	}

Básicamente la anotamos como componente OSGI(@Component), le configuramos un nombre de Servlet(osgi.http.whiteboard.servlet.name) y una URL donde se desplegará(osgi.http.whiteboard.servlet.pattern) y ya lo tendríamos. El resto es extender la classe de ‘HttpServlet’ y todo es como un Servlet de toda la vida, eso si, sin configurar ningún XML.

Atención, este servlet se desplegará en la URL ‘/o/miservlet’. El motivo es que Liferay 7 siempre pondrá el prefijo ‘/o’, es una de esas cosas que tiene Liferay 😀 .

En fin, espero que os sea de utilidad y que paséis unas felices fiestas y una buena entrada de año, con cariño.

Interesado en formación Liferay?

 

Leave a Reply