Utilizamos Rayas desde hace aproximadamente 4 años. Nuestra pila es Stripes/EJB3/JPA.
Muchos usan Stripes plus Stripernate como una única solución de pila completa. No lo hacemos porque queremos nuestra lógica empresarial dentro del nivel EJB, por lo que simplemente confiamos en las entidades JPA como modelo combinado y DTO.
Stripes realiza la vinculación a nuestras Entidades/DTO y las devolvemos al nivel de EJB para que funcionen. Para la mayor parte de nuestro material CRUD, esto es muy sencillo y sencillo, por lo que nuestro caso de uso del 80% es trivial para trabajar. Sin embargo, tenemos la flexibilidad de hacer lo que queramos para los casos límite que siempre surgen con aplicaciones complicadas.
Tenemos un Action Bean de base muy grande que encapsula la mayor parte de nuestras operaciones CRUD que hace call backs a las subclases individuales específicas de las entidades y formularios.
También tenemos una gran biblioteca interna de archivos de etiquetas para administrar nuestras páginas, seguridad, navegación, tareas, etc. Un simple formulario de edición CRUD es poco más que una lista de nombres de campos, y obtenemos todos los menús y menús y controles de acceso "gratis".
Lo bueno de esto es que tenemos que mantener la metáfora basada en la solicitud HTTP que nos gusta y podemos elegir las partes individuales del sistema en lugar de usar una pila de grasa. La capa de Stripes es delgada y mala, y nunca se interpone en nuestro camino.
Tenemos un montón de Ajax integrando YUI y JQuery, todos trabajando contra nuestras Stripes y EJB apilan sin dolor.
También porté una versión más ligera de la pila a GAE para un proyecto de muestra, básicamente teniendo que hacer un trabajo menor en nuestro nivel EJB. Entonces, toda la pila es muy ágil y amistosa para cambiar. Stripes es un gran factor de eso ya que dejamos que haga las pocas cosas que hace, y lo hace muy bien. Luego delegue el resto en otras partes de la pila.
Como siempre hay partes que las personas preferirían tener diferentes a veces, pero Stripes sería la última parte en nuestra pila, francamente. Podría ser mejor para soportar el conjunto completo de verbos HTTP, pero prefiero corregir Stripes para hacerlo mejor que cambiar a otra cosa.
Actualizada para tener esta como respuesta preferida, ya que está más actualizada que las demás. –