2017-12-26 12 views
0

私のローカル環境では、 "start.bat"ファイルを使用してアプリケーションバンドルを起動します。saaj環境のOSGi

次のようにこれはのようなものです:

java -jar -ea -Declipse.ignoreApp=true -Dosgi.clean=true -Ddebug=true plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -console -noExit 

OSGiのは、私は、既存のプラグインを一覧表示することができる方法で、コマンドプロンプト上で開始されます。しかし、生産はsaaj環境になり、プロセスマネージャーパッケージをインストールすることでOSGiをバックグラウンドプロセスとして開始すると思います。それから私の質問はそれを監視する方法ですか?バンドルを開始または停止する方法は? Telnet接続を可能にするには、Apache Felix Webコンソールなどのいくつかの監視ツールを使用する必要がありますか?クラウドサーバー上で簡単な方法(または一般的な使用法)がありますか? 私はOSGiの概念を初めて知っているので、誰かがこの問題について私に知らせることができますか?

答えて

0

さらに詳しい調査をしたところ、自分の状況に対する解決策を見つけました。 eclipse equinox( "osgi.console"に相当)の "-console"オプションは、hostとportのパラメータをとります。だから、私は次のように私の起動スクリプトを変更(追加したポート番号)VEの:

java -jar -ea -Declipse.ignoreApp=true -Dosgi.clean=true -Ddebug=true plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -console 5555 -noExit 

しかし、この追加の設定は、いくつかの余分なライブラリとOSGiの設定の変更が必要です。私は次のjarファイルを同じフォルダに "org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar"と置く必要がありました。それは私の環境のプラグインフォルダです。

  • org.apache.felix.gogo.command_0.10.0.v201209301215.jar
  • org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar
  • org.apache.felix.gogo。
  • org.eclipse.equinox.console_1.1.0.v20140131-1639.jar

をshell_0.10.0.v201212101605.jar第二に、私は私のconfig.iniファイルを設定しています。これは、キー/値を以下の含まれている必要があります

[email protected], [email protected], [email protected], [email protected] 
osgi.noShutdown=true 
eclipse.ignoreApp=true 

これらの変更の後、私は単に与えられたポートへのtelnet接続を使用して、コマンドラインからOSGiランタイムにコマンドを渡すことができます。 OSGiは、ssh接続を終了しても 'exit'と入力することによって、OSGiコンソールをtermusateするまで、常に上手くいくのが難点です。

参考:それは非常に安全ではないので、OSGi Modularity - Tutorial

+0

あなたは、本番環境でのtelnetシェルを使用してはならない。それはどのハッカーがあなたのマシン上で任意のコードを実行できるようになります。代わりに、Felix Gogoシェルが提供するssh機能を使用してください:https://stackoverflow.com/questions/30590137/apache-felix-shell-with-ssh#31037001 –

関連する問題