私はJavaライブラリ、実際にはClojureライブラリを作成していますが、この質問のために重要なのはJVM上で動作することです。このライブラリはJavaScriptを実行する必要があります。 I tried with Nashornしかし、私は克服するのが難しいかもしれないいくつかの制限に遭遇する。代わりに、私はNodeJSを試してみたいです。JavaアプリケーションからNodeJSを実行するにはどうすればよいですか?
私はライブラリを自己完結型にしたいので、NodeJSを単独で実行しているシステムに依存しないようにしてください。そして、JavaとNodeJS成果物を適切な場所に配置して、 。しかし、このアプローチにはいくつかの問題があります。
私はNodeJSとHTTPで話していますが、NodeJSが特定のポートを開くことは望ましくありません。ランダムな未使用のものを見つけて、衝突がないようにしたい。また、NodeJSのログをどこのアプリケーションと一緒に保管するかを制御する必要があります。最後に、私のアプリは、NodeJSがクラッシュして再実行したときを検出したり、情報のエラーを報告したりすることができます。
このアプローチにはどのような方法が最適ですか?このような方法で子プロセスを管理するためのJavaライブラリがありますか?特にNodeJS側から行うべきことは何でもあります(私はNodeJSを初めて使ったことがあります。
私はそれはあなたのライブラリーが消費されることを意図しているかによって異なりますが、その作業を達成するために、ライブラリの打ち上げを有するヘビー級サーバー・プロセスはコードのにおいのように思えるとします。 –
あなたはアバターのことを聞いたことがありますか?私はいくつかの問題を抱えていましたが、nodejsモジュールを使うことはできませんでしたが、アバターがギャップを埋めました:https://strongloop.com/strongblog/how-to-run-node-js-on-the-jvm-with-avatar- js-and-loopback/ – Tiago
ちょうど答えを絞り込む...あなたは正確に遭遇した制限は何ですか? nashornを使用したサーバーサイドスクリプティングでは、avgに6msが追加されます。最終的にあなたのポストのレスポンスタイムがあるので、パフォーマンスはそれらの1つではないと思います – cviejo