2016-09-19 6 views
0

あなたの会社はリアルタイムチャットアプリケーションの開発を依頼し、数時間で完了したいと考えています。 Node.jsで簡単に操作が簡単だと分かっているので、Node.jsで開発しましたが、WebSphere Application Server(JBossやWebLogicなど)を使用しています。Node.jsアプリケーションをJava EARとしてパッケージ化することはできます

したがって、サーバー管理者は.EARファイルを展開する必要があります。

Node.jsアプリを実行する.EARファイルを提供する方法はありますか?

+0

"あなたのNode.jsアプリを実行しています"。これは何を意味するのでしょうか?実際のノードサーバーもこのボックスで動作していますか?インバウンドリクエストは誰がサービスしますか?アプリケーションサーバーですか?私のポイントは、これについて少し考えてみると、_これはこれまでに働く可能性がありますか? – rmlan

+0

私の助言は、Java websocketライブラリのいくつかのリアルタイムチャットの例の1つを見つけ、必要に応じて実装を調整することです。 – rmlan

+0

これは実際のシナリオではありません。どういうわけか私たちがそれをやることができるかどうかを知りたいだけでした。 –

答えて

1

これはそのようfrigging汚れていますリリースされたEARの正常なチェックは、あなたを殺してしまいます。それは言われている、はい、可能です。あなたはまず少し物事を知る必要があります。

  1. は、JVMはそれのAPIメソッドを使用してシェルプロセスを実行するJVMを有効にするには、右sufficentlyずさんな実行上のプロセスやセキュリティを実行するpriviliged十分にある対象です。 (私はOSセキュリティではなく、Javaのセキュリティを話しています)

  2. 耳のコンテナが動作しているOSの種類を正確に把握しておく必要があります。

  3. EAR/WARは、OSによって認識される実際のファイルシステムに "展開"されなければなりません。

  4. 耳のコンテナには、OSコマンドを実行するのに十分な特権があることを確認する必要があります。

あなたは正確にこれら4つのポイントを知っていれば、これは実行可能ファイル(静的にリンクされ、OSの互換性)が便利既知の位置にあるのNode.jsプロセスを実行するプロセスのJava APIを使用するには全くとても重要ではありません。.. 。

でも、共有ポートは不可能なので、Node.js上で実行されている「実際の」アプリケーションのフロントプロキシとして動作するWebアプリケーションを持つだけで、HTTPまたはHTTPSは関連しませんWebアプリケーションコンテナとWebアプリケーション自体の間の最終的な通信がすべて暗号化されなくなりました。

awwww ...とてもかわいいです:)しかし、あなたは会社の環境でこのような卑劣な方法を使うことは良いことではないことを知る必要があります。

+0

前にも触れましたが、これは実際のシナリオではありません。私はちょうどそれを行う方法があるかどうかを知りたい。もしそうなら、開発者はnodejsとserverで書かれたアプリケーション用のコンテナをjava appとして作ることができます。ところで、これのための実用的な例を作ることができますか? –

+0

いいえ、私はそれのための時間がありません、私は問題が面白いものだったので、夢中になりました、そのようなソリューションの実装はあなた次第です。とにかく私は会社のガイドラインに何も触れていませんが、ソフトウェアソリューションに関連する生産上の問題に対して製造スタッフのリソースが不足するのを避けるために、通常は衛生的に定義されています。実際の問題は、コストを評価していない、または単に「今すぐやりたい」ソリューションを望んでいない階層にあります。 – Alex

+0

前にも述べたが、これは実際のシナリオではない。誰も私にチャットアプリをやるように頼んだ人はいません。確か誰も私を含めてJavaの耳の中にnodejsアプリを隠すべきではありません。私はプログラマとしても雇用されていません。私はnode.jsに興味のあるDBAです。しかし、もし何らかの形でそれが可能なら、それはjavaとnodejの間の橋渡しになり、多くのものを変えるかもしれません。 –

0

"pre-installed" nodeJSを耳の中に適切にパッケージ化することはできません。

NodeJSのインストールはWindowsとLinuxで異なります。 EARは移植性がありません。

サーバー管理者は、EAR内のJVM上で動作するようにはなっていない実行可能ファイルをパッケージ化していることを知っていれば、あなたの靴の中にいるのは嫌です。

(注1:上記の@mlanのコメントに記載されているように、JVMとnodejsプロセス間でポートを共有することは不可能です - すべてのトラフィックがHTTPであると仮定して、逆方向プロキシがHTTP要求をディスパッチする必要があります)

(注2:間違った私を入れていない、あなたはインスタンスのProcessBuilderを使用してJavaからトリガの実行可能ファイルを含め、EARに何かを置くことができますが、最後の問題を回避すること)

関連する問題