Wie soll ich NodeJS von einer Java-Anwendung ausführen?

Ich schreibe eine Java-Bibliothek, eigentlich eine Clojure-Bibliothek, aber für diese Frage ist es wichtig, dass sie auf der JVM ausgeführt wird. Diese Bibliothek muss JavaScript ausführen. Ich habe es mit Nashorn versucht aber ich stoße auf einige Einschränkungen, die möglicherweise zu schwer zu überwinden sind. Als Alternative möchte ich NodeJS ausprobieren.

Ich möchte, dass meine Bibliothek eigenständig ist, nicht von dem System abhängig ist, auf dem NodeJS unabhängig ausgeführt wird, und dass ein bestimmter Bereitstellungsmechanismus erforderlich ist, um die Java- und NodeJS-Artefakte an den richtigen Orten zu platzieren, an denen sie von den beiden verschiedenen Netzwerkservern abgerufen werden können. Dieser Ansatz bringt jedoch einige Probleme mit sich.

Ich werde über HTTP mit NodeJS sprechen, aber ich möchte nicht, dass NodeJS einen bestimmten Port öffnet. Ich möchte eine zufällige unbenutzte finden, damit es keine Kollisionen gibt. Ich möchte auch steuern, wohin die Protokolle von NodeJS gehen, um sie mit dem Rest meiner Anwendung zu behalten. Schließlich sollte meine App in der Lage sein, einen Absturz von NodeJS zu erkennen und erneut auszuführen oder einen Fehler mit Informationen zu melden.

Wie gehe ich das am besten an? Gibt es Java-Bibliotheken, die bei der Verwaltung von untergeordneten Prozessen auf diese Weise helfen? Alles, was ich von der NodeJS-Seite aus tun sollte (ich bin sehr neu in NodeJS, ich habe es noch nie zuvor benutzt).

Antworten auf die Frage(8)

Ihre Antwort auf die Frage