He estado usando Liferay durante aproximadamente 2 años para una aplicación interna. Tuvimos la misma discusión muchas veces durante el ciclo de desarrollo antes de nuestra primera publicación. Tuvimos que pelear contra Liferay varias veces, a veces debido a nuestra propia falta de conocimiento, a veces debido al entorno de portlet, y ocasionalmente debido a Liferay.
Si desea las opciones de diseño para múltiples aplicaciones que puede obtener de un portal, entonces seguramente debe utilizar Liferay. Si está escribiendo una sola aplicación, entonces probablemente no use Liferay.Creo que un híbrido de algunos Liferay y otros no es, de lejos, la peor opción.
Probablemente no estamos aprovechando al máximo las capacidades de Liferay, pero si esta es su primera aplicación Liferay, es probable que tampoco lo haga debido a la curva de aprendizaje. Originalmente esperábamos tener muchos portlets diferentes para los diferentes aspectos de nuestra aplicación, pero debido a la falta de buenos mecanismos de comunicación entre portlets durante el desarrollo (antes de JSR-286) terminamos escribiendo una sola aplicación. Ahora que terminamos en ese bote, desearía habernos ido sin Liferay ya que todo lo que realmente estamos usando es algunas capacidades de administración de usuarios.
Utilizamos JSF y facelets (ambas nuevas tecnologías para nosotros, por lo que el dolor puede haber sido auto incrustado) y, aunque hemos mejorado, parece que hubo algunos aros que tuvimos que saltar en orden para que funcione correctamente en un portlet; Cosas que no tendrían que haber sucedido en un entorno de aplicación web regular. Para muchos frameworks, parece que el soporte de portlet es una idea de último momento. Obviamente, esto no es específico de Liferay, es solo un subproducto del trabajo en el entorno de portlet.
En una aplicación web con Spring MVC, Struts, Faces, Wicket, lo que sea, tendrás mucho más control sobre todo, pero también serás responsable de implementar más cosas.
En un portlet, usted estará sujeto a los términos de JSR-168 y/o JSR-286. El contenedor del portal le proporcionará cierta funcionalidad, como autenticación de usuario, pero IMO, un portal completo para autenticación de usuario es demasiado pesado. Veo que el poder del portal le permite al usuario personalizar su vista de múltiples aplicaciones, sin presentar una sola aplicación.
Debe revisar las especificaciones relacionadas con el portlet y ver si se ajusta a sus necesidades.
http://developers.sun.com/portalserver/reference/techart/jsr168/
Espero que si realmente son servicios "compartidos", no tenga que escribirlos por segunda vez de todos modos. Habría algún esfuerzo de integración, pero debería ser mucho más pequeño que implementarlo por segunda vez. – digitaljoel