Pregunta

¿Cuál es una buena manera de representar datos producidos por un proceso Java en el navegador?

He hecho un uso extensivo de JSP y los diversos marcos asociados (JSTL, puntales, Tapiz, etc), así como marcos más completos no relacionados con JSP (GWT, AbrirLaszlo).Ninguna de las soluciones ha sido completamente satisfactoria: en la mayoría de los casos, el marco es demasiado restringido o demasiado complejo para mis necesidades, mientras que otras requerirían una refactorización exhaustiva del código existente.Además, la mayoría de los marcos parecen tener problemas de rendimiento.

Actualmente me estoy inclinando por la solución de exponer mis datos de Java a través de un servlet simple que devuelve JSON y luego renderizar los datos usando PHP o Ruby.Esto tiene el beneficio adicional de exponer instantáneamente mi servicio también como un servicio web, pero me pregunto si estoy reinventando la rueda aquí.

¿Fue útil?

Solución

Yo personalmente uso Tapiz 5 para crear páginas web con Java, pero estoy de acuerdo en que a veces puede resultar un poco excesivo.Yo consideraría el uso de JAX-RS (proyecto java.net, jsr311) es bastante simple de usar, admite ordenar y desarmar objetos hacia/desde XML listo para usar.Es posible ampliarlo para que admita JSON a través de Echazón.

Hay dos implementaciones que he probado:

  • Jersey - la implementación de referencia para JAX-RS.
  • Estar tranquilo - la implementación que prefiero, buen soporte para ordenar y desarmar una amplia gama de formatos.También es bastante estable y tiene más funciones que Jersey.

Eche un vistazo al siguiente código para tener una idea de lo que JAX-RS puede hacer por usted:

@Path("/")
class TestClass {
    @GET
    @Path("text")
    @Produces("text/plain")
    String getText() {
        return "String value";
    }
}

Esta pequeña clase se expondrá en la raíz del servidor (@Path en la clase), luego expondrá el método getText() en el URI /text y permitirá el acceso a él a través de HTTP GET.La anotación @Produces le dice al marco JAX-RS que intente convertir el resultado del método en texto sin formato.

La forma más sencilla de aprender sobre lo que es posible con JAX-RS es leer el especificación.

Otros consejos

estamos usando Rayas.Le brinda más estructura que los servlets simples, pero le permite controlar sus URL a través de una anotación @UrlBinding.Lo usamos para transmitir xml y json al navegador para cosas de ajax.

Podrías consumirlo fácilmente con otra tecnología si quisieras seguir ese camino, pero es posible que disfrutes desarrollando con rayas.

Verificar descansar para obtener un buen marco para exponer su modelo de dominio como servicios REST (incluidos JSON y salida XML trivial).

Para representar su información, ¿tal vez pueda usar GWT en el lado del cliente y consumir sus servicios de datos?Si GWT no hace flotar su bote, ¿tal vez JQuery lo haría?

¿Quizás podrías generar los datos como XML y renderizarlos usando XSLT?

¡No estoy seguro de que PHP o Ruby sean la respuesta si Java no es lo suficientemente rápido para ti!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top