2016-05-13 20 views
9

Abbiamo un'applicazione in puro JSP/JQuery che stiamo cercando di spostare su ReactJs per la manutenibilità. Uno dei vantaggi di ReactJs che sto vedendo è il rendering lato server. Tuttavia, tutti gli esempi che ho visto del rendering lato server utilizzano Node.js come lato server. Attualmente utilizziamo Tomcat e non siamo così propensi a distribuire node.js solo per il rendering lato server.Rendering lato server React.js con Java [senza Node.js]

ho preso in considerazione alcune alternative come l'utilizzo di Nashorn (http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/)

Tuttavia, Nashorn non sembra essere pronti per la produzione.

Qualcuno ha distribuito React.js con rendering lato server su Tomcat in produzione?

+1

Nashrom è stato rilasciato con Java 8, quindi mi aspetto che Oracle ritenga che sia pronto per la produzione. Vedi http://augustl.com/blog/2014/jdk8_react_rendering_on_server/ per il rendering di React lato server applicazioni con Java. –

+1

Perché dovresti pensare che la reattività del server sia più gestibile rispetto a JSP? – stepanian

+1

Perché vuoi renderlo nel server con React e non con JSP? – inigoD

risposta

11

Cercando di eseguire il rendering di un'app per JavaScript sul server senza NodeJS è un ottimo modo per torturarsi. Provare a eseguire javascript all'interno di una jvm è ancora peggio. Consiglierei contro di esso.

È possibile eseguire il rendering dell'intero lato server client utilizzando PhantomJS (che tecnicamente funziona senza nodo) o utilizzando anche xvfb e Chrome su * nix. Tutto è stato fatto, con vari gradi di debugging doloroso.

L'esecuzione della javascript all'interno di tomcat è piuttosto insolita ... Non riesco a vedere il punto se non "perché possiamo". La mia ipotesi migliore è che nessuno lo stia facendo in produzione.

+1

Sono d'accordo per la maggior parte, tuttavia .NET ha un framework di rendering lato server per reactjs. Quindi non penso che tu debba necessariamente eseguire javascript in JVM per realizzare questo. JSX è essenzialmente JS + XML, quindi potresti probabilmente eseguire il rendering preliminare del modello senza troppi problemi. Non penso sia necessario raggiungere un certo livello di rendering lato server interpretando lato server JS. – tsturzl

+5

Solo perché nessuno ha documentato pubblicamente il rendering dei componenti React da Java non significa che sia difficile o una tortura. Realmente, l'esecuzione di JavaScript in Java non è difficile, complicata o insolita. Questo è stato parte dello standard JRE da molto prima che JavaScript diventasse popolare sul lato server. Abbiamo usato il codice JavaScript incorporato in un'applicazione Java in produzione anni fa (al momento, abbiamo usato il vecchio motore di Rhino). –

+0

@PierreBuyle Sto usando un'iperbole nella mia risposta (forse dovrei modificarlo), ma la mia esperienza con Rhino non è stata molto positiva quando ho provato a usarla per simulare un'app browser. Forse sei più intelligente o più fortunato di me, ma potresti essere d'accordo sul fatto che non è il percorso di minor resistenza. – iwein

Problemi correlati