2016-05-13 7 views
9

Wir haben eine Anwendung in reinem JSP/JQuery, die wir versuchen, zu ReactJs für Wartungsfreundlichkeit zu verschieben. Einer der Vorteile von ReactJs ist das serverseitige Rendering. Alle Beispiele, die ich vom serverseitigen Rendern gesehen habe, verwenden jedoch Node.js als Serverseite. Wir verwenden derzeit Tomcat und sind nicht so sehr geneigt, node.js nur für das serverseitige Rendering bereitzustellen.React.js serverseitiges Rendering mit Java [ohne Node.js]

ich einige Alternativen in Betracht gezogen haben, wie die Verwendung von Nashorn (http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/)

jedoch Nashorn scheint nicht Produktion bereit zu sein.

Hat jemand React.js mit serverseitigem Rendering auf Tomcat bei der Produktion bereitgestellt?

+1

Nashrom wurde mit Java 8 veröffentlicht, daher erwarte ich von Oracle, dass es produktionsbereit ist. Siehe http://augustl.com/blog/2014/jdk8_react_rendering_on_server/ für das Rendering. Reagieren Sie die Seite des App-Servers mit Java. –

+1

Warum denkst du, dass das Ausführen von Reaktionen auf dem Server wartungsfreundlicher ist als JSP? – stepanian

+1

Warum möchten Sie es in Server mit React und nicht mit JSP rendern? – inigoD

Antwort

11

Der Versuch, eine Javascript-App serverseitig ohne NodeJS zu rendern, ist eine ausgezeichnete Möglichkeit, sich selbst zu quälen. Der Versuch, Javascript in einem jvm auszuführen, ist noch schlimmer. Ich würde es empfehlen.

Es ist möglich, die komplette Client-Server-Seite mit PhantomJS (die technisch ohne Node läuft) oder sogar mit xvfb und Chrome on * nix zu rendern. Alle wurden mit verschiedenen Graden der schmerzhaften Fehlersuche gemacht.

Laufen das Javascript innerhalb Tomcat selbst ist eher ungewöhnlich ... Ich kann den Punkt nicht anders als "weil wir können" sehen. Meine Vermutung ist, dass das niemand in der Produktion macht.

+1

Ich stimme dem größtenteils zu, aber .NET hat ein serverseitiges Rendering-Framework für reactjs. Ich glaube also nicht, dass Sie Javascript in JVM ausführen müssen, um dies zu erreichen. JSX ist im Wesentlichen JS + XML, sodass Sie die Vorlage wahrscheinlich ohne große Probleme vorrendern könnten. Ich denke nicht, dass es erforderlich ist, ein gewisses Maß an Server-Side-Rendering zu erreichen, indem ich die JS-Server-Seite interpretiere. – tsturzl

+5

Nur weil niemand das Rendering öffentlich dokumentiert hat Reagieren auf Java bedeutet nicht, dass es schwer oder eine Qual ist. Wirklich, das Ausführen von JavaScript in Java ist nicht schwer, kompliziert oder ungewöhnlich. Dies ist Teil der Standard-JRE, lange bevor JavaScript auf der Serverseite populär wurde. Wir haben JavaScript bereits vor Jahren in einer Java-Anwendung eingebettet (damals verwendeten wir die alte Rhino-Engine). –

+0

@PierreBuyle Ich verwende eine Übertreibung in meiner Antwort (vielleicht sollte ich das bearbeiten), aber meine Erfahrung mit Rhino war nicht sehr positiv, als ich versuchte, es zu verwenden, um eine Browser-App zu simulieren. Vielleicht bist du schlauer oder glücklicher als ich, aber du magst zugeben, dass es nicht der Weg des geringsten Widerstands ist. – iwein

Verwandte Themen