Con el auge de los microservicios se podria pensar que el tipo aplicaciones monolitcas, ntier, hibridas o distribuiridas estan muertas, pero no es así, estas aun tienen una gran parte del mercado y son una solucion viable, sobre todo para aplicaciones pequeñas , empresas pequeñas, startups o midlewares medianos.
¿que es una aplicación monolitica?
Una aplicacion monolitica es aquella cuyos componentes estan estrechamente ligados de tal forma que cada uno de las clases o archivos dependen uno del otro. Una aplicacion monolitica puede estar formada por 1 o cientos de archivos en una sola carpeta, y para poder hacer funcionar se requieren todo los archivos o componente, logicamente representan toda la solución, en Java, son entregados en un archivo JAR , WAR o EAR.
¿Que es Java Server Faces?
JavaServer Faces (JSF) es un framework de desarrollo de aplicaciones web Java que se utiliza para simplificar la creación de interfaces de usuario en aplicaciones web utilizando el concepto llamado: Server side render.
¿que es “Server-Side Rendering” (SSR)?
Es una técnica utilizada en el desarrollo web para generar y renderizar contenido web en el servidor antes de enviarlo al navegador del usuario. A diferencia de las aplicaciones de representación del lado del cliente (Client-Side Rendering o CSR), donde la mayor parte del procesamiento y la renderización ocurre en el navegador del cliente, en SSR, gran parte de este trabajo se realiza en el servidor.
Esto tiene la notable ventaja que los componentes visuales pueden serreutilizados , ademas permite al equipo de desarrollo centrarse en la logica de negocio y no en la apariencia, permitiendo acelerar el desarrollo y simplicar el mantenimiento.
Esta tecnologia fué un BOOM en el 2005 al 2015, actualmetne con el auge de las apliaciones distribuidas, los microservicios y los servicios rest que permitieron la proliferacion de los frameworks javascript estan cada vez en menos uso, pero son bien apreciados en muchas empresas.
Frameworks que utilizan SSR
- JavaServer Faces (JSF): es un marco de desarrollo web Java que permite la creación de aplicaciones web con representación del lado del servidor.
- Thymeleaf: Thymeleaf es un motor de plantillas Java que permite la creación de páginas web con representación del lado del servidor. Es especialmente popular en combinación con el marco Spring.
- Spring Boot: Si está utilizando Spring Boot como su marco de desarrollo, puede implementar SSR combinando Spring Boot con Thymeleaf u otras tecnologías de plantillas.
- JSP (JavaServer Pages): JSP es una tecnología de Java EE que permite la creación de páginas web dinámicas con representación del lado del servidor. Aunque se ha vuelto menos popular en comparación con otras tecnologías de plantillas, todavía se utiliza en algunas aplicaciones Java legadas.
- Vaadin: Vaadin es un marco de desarrollo de aplicaciones web en Java que ofrece una interfaz de usuario rica y permite la representación del lado del servidor. Es especialmente útil para aplicaciones empresariales.
Librerias Java Server Faces
- PrimeFaces: PrimeFaces es una biblioteca de componentes de código abierto muy popular para JSF. Ofrece una amplia variedad de componentes ricos y temas personalizables para mejorar la apariencia y la funcionalidad de las aplicaciones JSF.
- RichFaces: RichFaces es otra biblioteca de componentes para JSF que proporciona componentes AJAX ricos y herramientas para mejorar la experiencia del usuario en aplicaciones web JSF.
- BootsFaces: BootsFaces combina JSF con Bootstrap, el popular framework de diseño web, para facilitar la creación de aplicaciones web modernas y receptivas con JSF.
- IceFaces: IceFaces es una biblioteca de componentes JSF que se centra en proporcionar funcionalidad AJAX avanzada para aplicaciones JSF, lo que permite una experiencia de usuario rica y dinámica.
- Apache MyFaces: MyFaces es un proyecto de código abierto de la Apache Software Foundation que ofrece una implementación de JSF. Incluye un conjunto de componentes y herramientas para el desarrollo de aplicaciones JSF.
- OmniFaces: OmniFaces es una biblioteca de utilidades que complementa JSF y resuelve diversos problemas comunes en el desarrollo de aplicaciones JSF. Ofrece un conjunto de extensiones útiles.
- Mojarra (Oracle JSF Reference Implementation): Mojarra es la implementación de referencia de JSF proporcionada por Oracle. Aunque es una implementación estándar de JSF, se utiliza comúnmente en aplicaciones JSF.
- Cuban Platform: Cuban Platform es un conjunto de herramientas y bibliotecas que extienden JSF y otros marcos de Java para el desarrollo de aplicaciones empresariales.
En este articulo vamos a trabajar con PrimeFaces.
https://primefaces.org/showcase/index.xhtml?jfwid=c972f
Creando aplicación web empresarial paso a paso:
Se puede comenzar a crear la aplicacion desde el website de jakarta o desde el IDE. El startup de jakarta nos permite una gran configuracion inicial para nuestro proyecto.
- Crear el proyecto, para esto utilizaremos IntelliJIDEa
Codigo del ejercicio:
El codigo del ejercicio lo pueden encontrar en github del grupo:
https://github.com/berroteran/demoJakarta10JSF
Posibles problemas y soluciones.
Referencias:
https://blog.payara.fish/getting-started-with-jakarta-ee-9-jakarta-faces-jsf
https://blog.payara.fish/a-quick-look-at-faces-jsf-4.0-in-jakarta-ee-10
https://github.com/eclipse-ee4j/mojarra
https://primefaces.github.io/primefaces/12_0_0/#/?id=main
Ejemplos que te pueden ser utiles:
https://github.com/aturanj/java-jakarta-primefaces

Omar es Java Senior Developer full Stack, consultor independiente. Developer Advocate, amante a la tecnología JVM con mas de 16 años de experiencia, colaborador de las distribuciones Linux: Fedora y Gentoo, ademas de otras aplicaciones libres. También es promotor y colaborador del proyecto de robótica educativa ICARO. Lider de proyecto y gestión de equipos. Conferencista, entrenador y consultor internacional. Actualmente Líder del Grupo de Usuarios Java de Nicaragua.
Puedes contratarlo para capacitaciones en tu empresa, desarrollo de software a medida, contraparte en entrega de software o consultor de seguridad.