問題タブ [embedded-osgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1734 参照

java - OSGI コマンドライン アプリケーションの作成方法

私は現在、OSGI に慣れていて、OSGI のユースケースを少し特殊なものにすることにしました。コマンドラインアプリケーションで使用したいと思います。main(..)いくつかのフラグと引数を取り、何かを実行して再びシャットダウンするメソッドが必要です。私が望んでいないのは、Apache Karaf (または同様のもの) を起動して、OSGI コンソール内でコマンドを実行することです (ただし、これはオプション機能になる可能性があります)。

そもそも、なぜコマンドライン アプリケーションに OSGI を使用するのでしょうか? アプリケーションは、同じライブラリの異なるバージョンを使用することになっています ( elasticsearchです)。もちろん、それはもちろん悪いからです。

バンドル内またはバンドル外でサービスを使用する必要がありますか? どうすればそれを行うことができますか?どのような問題が発生する可能性がありますか?

0 投票する
1 に答える
907 参照

java - OSGi で選択する必要がある FrameworkFactory のパッケージはどれですか?

最近、OSGi フレームワークを使い始めました。Maven ベースのプロジェクトから OSGi コンテナーを起動しようとしています。

上記のmavenプロジェクトのpom.xmlファイルにこの依存関係を追加しました-

以下は私の主なアプリケーションです-

のパッケージをインポートしようとすると、FrameworkFactory2 つのオプションから選択できます。以下はイメージです。ここでどれを選択する必要があるか、誰か助けてもらえますか?

ここに画像の説明を入力

私はこの2つを選んでいたのですか?

これは正しいですか?

0 投票する
1 に答える
486 参照

java - ビルド ツール 16 が見つかりません。17 を使用できますか?

私はAndroidの世界では比較的新しいので、私の質問が意味をなさない場合は、新しい人に我慢してください.

AndroidでOSGi環境を実行できるように、いくつかのjarをdexifingする必要があります。私の問題は、ビルドツール リビジョン 16 を SDK マネージャーでダウンロードできないことです。

この両方のリンクで直接ダウンロードを試みました:

http://dl.google.com/android/installer_r16-windows.exe

http://developer.android.com/sdk/older_releases.html

最初のバージョンにはマネージャーがあり、バージョン 16 をダウンロードせず、代わりにバージョン 22.x をダウンロードするように強制され、2 番目のバージョンにはビルド ツールがありません。

だから:私の電話にAndroid 4.1(API 16)がある場合、ビルドツール17のdxコマンドを使用できますか?

誰かが今、なぜ私がしようとしているだけではないのか疑問に思っているなら. これは、簡単には機能しないと思われる jar がいくつかあるため、開始する前に問題の原因を回避し、解決しなければならない問題がわからないためです。

PS: 既に開発されたソフトウェア (ミドルウェア) を実行するために OSGi を実行したいので、dexifing がなくてもこれを可能にする助けがあれば役に立ちます (複雑さと時間の点で合理的であれば)。

0 投票する
1 に答える
2534 参照

servlets - Apache Felix サーブレット ブリッジのセットアップ

サーブレットを OSGI バンドルで拡張可能にしようとしています。新しく追加されたバンドルもサーブレットでなければなりません。Felix http://felix.apache.org/documentation/subprojects/apache-felix-http-service.htmlによって提供されるサーブレット ブリッジ機能があります。Felix の Web ページにあるように、サーブレット ブリッジをセットアップするには、次のことを行う必要があります。

  1. Web アプリケーション (WEB-INF/lib) 内に org.apache.felix.http.proxy jar ファイルをデプロイします。[終わり]
  2. 起動リスナー (ServletContextListener など) で、BundleContext をサーブレット コンテキスト属性として設定[DONE]
  3. web.xml 内で org.apache.felix.http.proxy.ProxyServlet を定義し、すべてのリクエストでサービスを提供するように登録します[DONE]
  4. org.apache.felix.http.proxy.ProxyListener を web.xml で として定義して、HTTP セッション関連のイベントを転送できるようにします[完了]
  5. 必ず javax.servlet;javax.servlet.http;version=2.6 を OSGi システム パッケージに追加してください [必須ではありません]
  6. OSGi フレームワーク内に org.apache.felix.http.bridge (または org.apache.felix.http.bundle) をデプロイします[????]

私の場合、手順 6 ではサーブレット ブリッジを機能させるには不十分なようです。バンドル サーブレットに対してすべての手順 1 ~ 5 を実行しました。私のメイン サーブレットには OSGI 組み込みメカニズムがあるため、Java コードからバンドルをデプロイします。これは OSGI ランチャーのコードの一部です。

メインのサーブレット コードから、必要なorg.apache.felix.http.bridgeバンドル、サーブレット バンドルのいくつかの依存関係 (slf4j、javax.servlet...)、および手順 1 ~ 5 に従って作成したサーブレット バンドルをインストールします。デプロイの結果: サーブレット バンドルで使用できる HttpService がありません。アプリケーションで使用できないため、サーブレット バンドルにサーブレット インスタンスを登録する方法がありません。

MANIFEST.MF を見ると、次のorg.apache.felix.http.bridgeような言及は見つかりませんでしたExport-Service: org.osgi.service.http.HttpService
。このバンドルを使用するにはどうすればよいですか? サーブレット ブリッジをセットアップするにはどうすればよいですか?

0 投票する
0 に答える
121 参照

servlets - Equinox のサーブレット リスナーと MIME タイプのサポート

bridge.war を使用して tomcat 7.x に分点フレームワークを組み込みました。

http://www.eclipse.org/equinox/server/http_in_container.php

サーブレット登録コードを含む osgi バンドルを開発しました。予想どおり、このサーブレットはブリッジ上で実行されます。

私の目標は、この osgi バンドルでサーブレット API と web.xml 機能をサポートして、既存の Web アプリケーションを osgi に移植できるようにすることです。

今のところ、「org.eclipse.equinox.http.servlet.ExtendedHttpService」を使用してサーブレット フィルターとサーブレットを登録しています。

ただし、ExtendedHttpService にはサーブレットリスナーを登録するメソッドがありません。

サーブレット登録コードを含むosgiバンドルでサーブレットリスナーとMIMEタイプをサポート/登録する方法を教えてください。

0 投票する
1 に答える
1131 参照

tomcat - tomcat にデプロイされた OSGI equinox バンドルからの JNDI ルックアップ (ブリッジ モード)

tomcat\context.xml でデータソースを構成しています。サーブレットブリッジ環境を取得するために、Eclipse が提供する bridge.war をデプロイしました。

サーブレット登録コードを含む別の osgi バンドルを開発しました。私の目的は、このサーブレット バンドルからデータソースを JNDI 検索することです。

しかし、私は得る

OSGI バンドルのコードをたどろうとすると

osgi コンテナーに catalina.jar を追加し、osgi バンドルの依存関係としても追加しました。

bridge.war の launch.ini は次のようになります。

誰かがそれを手伝ってくれますか?