Pergunta

O que é uma boa maneira de tornar os dados produzidos por um processo de Java no navegador?

Eu fiz uso extensivo de JSP e as várias estruturas associadas ( JSTL , Struts , Tapestry , etc), bem como estruturas mais abrangentes não relacionados com JSP ( GWT , OpenLaszlo ). Nenhuma das soluções já sido inteiramente satisfatória - na maioria dos casos, o quadro é muito limitado ou complexa demais para as minhas necessidades, enquanto outros exigiria extensa refatoração de código existente. Além disso, a maioria dos frameworks parecem ter problemas de desempenho.

Atualmente eu estou inclinado para a solução de expor meus dados java através de um simples servlet que retorna JSON, e depois processar os dados usando PHP ou Ruby. Isto tem a vantagem de expor instantaneamente meu serviço como um serviço web, bem como, mas eu estou querendo saber se eu estou reinventando a roda aqui.

Foi útil?

Solução

Eu uso pessoalmente Tapestry 5 para a criação de páginas web com Java, mas concordo que às vezes pode ser um pouco exagero. Gostaria de olhar para usando JAX-RS ( java.net projeto , jsr311 ) é bastante simples de usar, suporta triagem e objetos unmarshalling de / para XML fora da caixa . É possível estendê-lo para apoiar JSON via Jettison .

Existem duas implementações que eu tentei:

  • Jersey -. A implementação de referência para JAX-RS
  • Resteasy - a implementação prefiro, um bom suporte para triagem e unmarshalling uma ampla gama de formatos. Também bastante estável e tem mais recursos que Jersey.

Dê uma olhada no código a seguir para obter uma sensação para o que JAX-RS pode fazer por você:

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

Esta pequena classe irá expor-se na raiz do servidor (@Path na classe), em seguida, expor o método getText () na URI / texto e permitir o acesso a ele através de HTTP GET. A anotação @Produces conta a estrutura JAX-RS para tentar virar o resultado do método em texto simples.

A maneira mais fácil de aprender sobre o que é possível com JAX-RS é ler o especificação .

Outras dicas

Estamos usando Stripes . Dá-lhe mais estrutura do que servlets retas, mas permite controlar seus URLs através de uma anotação @UrlBinding. Nós a usamos para fluxo de XML e JSON de volta para o navegador para ajax coisas.

Você poderia facilmente consumi-lo com outra tecnologia, se você queria ir por esse caminho, mas você pode realmente desfrutar de desenvolvimento com listras.

Confira Restlet para um bom quadro para expor o seu modelo de domínio como serviços REST (incluindo JSON e saída XML trivial) .

Para tornar o seu informações, talvez você possa usar o GWT no lado do cliente e consumir seus serviços de dados? Se GWT não flutuar seu barco, então talvez JQuery faria?

Talvez você poderia gerar os dados como XML e torná-lo usando XSLT?

Eu não tenho certeza PHP ou Ruby são a resposta se o Java não é rápido o suficiente para você!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top