El resorte es el obvio que deberías estar utilizando. GWT tiene su propio marco de control RPC, por lo que realmente no puedo pensar en lo que necesitaría para un marco de aplicaciones web (como JSF).
JPA es una opción razonable en varios frentes, pero también tiene problemas.
Por un lado, es potencialmente un problema al enviar objetos JPA al cliente. GWT (hasta 1.5 al menos) impone una estructura de directorios bastante estricta, por lo que tendría que colocar sus entidades bajo el árbol de fuentes de GWT. Aparte de eso, serializar (JSON generalmente) entidades JPA hacia y desde el cliente es potencialmente problemático.
Las entidades JPA son objetos bastante rígidos que mapean casi uno a uno a sus tablas. Sin embargo, esa no es la forma en que usas los datos en una capa de presentación. SQL directo le permitirá elegir y elegir qué datos desea y no desea, diseñados específicamente para esa página. Por lo tanto, las entidades JPA suelen tener muchos campos en los que no está interesado y no debe serializar (en particular colecciones de relaciones de uno a muchos).
Ahora ese aspecto de SQL - adaptarlo a la página - a menudo se cita como una ventaja de las entidades: su código no termina lleno de objetos de valor de un solo uso. La cosa es que todavía terminas con lo mismo en gWT + JPA, pero en lugar de estar en la capa de persistencia o en la capa de negocios, terminas con ellos en la capa de presentación. Ahora puede llamar a eso una ventaja. Lo llamo seis de uno, media docena del otro.
De hecho, creo que Ibatis se ajusta mucho mejor al modelo de aplicación GWT que JPA porque está utilizando SQL directo, objetos diseñados a su medida y esos objetos pueden utilizarse desde la base de datos hasta el cliente . Ahora bien, este concepto puede horrorizar a los fanáticos de la estratificación que son bastante comunes en la tierra de Java, pero recuerda que la estratificación es un medio para un fin, no un fin en sí mismo. Úselo si lo ayuda. No, si no es así.
Pero la primavera es la necesidad absoluta en esta pila.
También lo referiré a Why isn’t Google Web Toolkit more popular? y Using an ORM or plain SQL?.
¿por qué jsf? ¿Está pasando JSON al frente o se están utilizando llamadas de servicio directo? De cualquier manera, JSF no es necesario. – user37468
principalmente para crear y administrar correctamente los beans administrados en una instancia por sesión/solicitud/aplicación – GBa