Domanda

Qual è un buon modo per eseguire il rendering dei dati prodotti da un processo Java nel browser?

Ho fatto ampio uso di JSP e dei vari framework associati (JSTL, Puntoni, Arazzo, ecc.), nonché framework più completi non correlati a JSP (GWT, ApriLaszlo).Nessuna delle soluzioni è mai stata del tutto soddisfacente: nella maggior parte dei casi il framework è troppo vincolato o troppo complesso per le mie esigenze, mentre altri richiederebbero un ampio refactoring del codice esistente.Inoltre, la maggior parte dei framework sembra avere problemi di prestazioni.

Attualmente mi sto orientando verso la soluzione di esporre i miei dati Java tramite un semplice servlet che restituisce JSON e quindi eseguire il rendering dei dati utilizzando PHP o Ruby.Ciò ha l'ulteriore vantaggio di esporre immediatamente il mio servizio anche come servizio Web, ma mi chiedo se sto reinventando la ruota qui.

È stato utile?

Soluzione

Io personalmente uso Arazzo 5 per creare pagine web con Java, ma sono d'accordo che a volte può essere un po' eccessivo.Vorrei esaminare l'utilizzo di JAX-RS (progetto java.net, jsr311) è piuttosto semplice da usare, supporta il marshalling e l'unmarshalling di oggetti da/verso XML immediatamente.È possibile estenderlo per supportare JSON tramite Gettare via.

Ci sono due implementazioni che ho provato:

  • Maglia - l'implementazione di riferimento per JAX-RS.
  • Rilassato - l'implementazione che preferisco, buon supporto per il marshalling e l'unmarshalling di un'ampia gamma di formati.Inoltre è abbastanza stabile e ha più funzionalità del Jersey.

Dai un'occhiata al seguente codice per avere un'idea di cosa JAX-RS può fare per te:

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

Questa piccola classe si esporrà alla radice del server (@Path sulla classe), quindi esporrà il metodo getText() nell'URI /text e consentirà l'accesso ad esso tramite HTTP GET.L'annotazione @Produces indica al framework JAX-RS di tentare di trasformare il risultato del metodo in testo semplice.

Il modo più semplice per scoprire cosa è possibile fare con JAX-RS è leggere il file specifica.

Altri suggerimenti

Stiamo usando strisce.Ti dà più struttura rispetto ai servlet semplici, ma ti consente di controllare i tuoi URL tramite un'annotazione @UrlBinding.Lo usiamo per trasmettere in streaming xml e json al browser per materiale Ajax.

Potresti facilmente consumarlo con un'altra tecnologia se volessi seguire quella strada, ma potresti davvero divertirti a sviluppare con le strisce.

Guardare Resto per un buon framework per esporre il tuo modello di dominio come servizi REST (inclusi JSON e banali output XML).

Per rendere le tue informazioni, forse puoi utilizzare GWT sul lato client e consumare i tuoi servizi dati?Se GWT non fa galleggiare la tua barca, forse JQuery lo farebbe?

Forse potresti generare i dati come XML e renderli utilizzando XSLT?

Non sono sicuro che PHP o Ruby siano la risposta se Java non è abbastanza veloce per te!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top