2

ここはかなり苦戦しているようです。私がやりたいこと(この順序で)は次のとおりです。

1) アノテーション付きのジャージー アプリケーションとリソースを使用して RESTful リソースを構築します (これは問題ではありません)。

2) 依存関係を含む HTTP サービスとして、そのバンドルを Felix OSGi コンテナーにパッケージ化、インストール、および開始します。

3) #2 を依存関係として組み込む可能性がある OSGi コンテナーで、WAR をパッケージ化、インストール、および開始します。

そして、これらすべてを Maven を使用して実行できるようにしたいと考えています。

特にMavenを含む個々のステップでさえ、それらのステップの組み合わせは言うまでもなく機能する実際の例を見つけることができないようです。私はさまざまなレベルの成功を収めた Web 全体からのさまざまな Q&A をまとめてみましたが、まだエンド ツー エンドの実用的な例ではありません。

任意のポインタをいただければ幸いです...

4

5 に答える 5

3

Jersey の例はありませんが、Apache Karaf (Felix を使用) を使用した CXF のチュートリアルがあります。Rest サービスを作成し、Maven でビルドする方法を示します。Apache Karaf を使用すると、バンドルを Maven リポジトリから直接デプロイできます。これを Jersey に移動することは、おそらく lib を交換し、別のブループリント構成を使用して残りのサービスを初期化することを意味します。

Apache Karaf では war と wab をデプロイすることもできますが、まだテストしていません。

于 2012-10-23T06:44:09.787 に答える
1

私はこの組み合わせを試して、それを作って実行しました -

1- モジュール仕様 --> OSGi 仕様

2- OSGi の実装 --> Apache Felix 4.4.0

3- OSGi ランタイム --> Apache Karaf 3.0.3

4- REST のソフトウェア アーキテクチャ仕様 – JAX-RS

5- JAX-RX 実装 --> Apache CXF – 2.7.5

この素晴らしいチュートリアルを参照できます - http://java.dzone.com/articles/building-cxf-rest-service-osgi

現在、Jersey は JAX-RS の軽量待機リファレンス実装であるため、CXF から Jersey に移行することも計画しています。今、Jersey を Apache Felix/Apache Karaf で使用することを計画しています。Jersey を Karaf にインストールし、Jersey Rest Web サービスをバンドルとしてデプロイできます。このチュートリアルを参照できます - https://vzurczak.wordpress.com/2014/09/30/web-applications-with-osgi-working-with-jersey/

于 2015-05-29T08:57:37.413 に答える
1

私はまた、あなたがやろうとしていることを正確に理解するのに本当に苦労しています. これまでのところ、私は本当に近づいているように見えますが、残念ながらそこまでではありません。これが私がやっていることです:

  1. ジャージー リソースを定義する Maven との戦争を作成する
  2. それを maven バンドル プラグインでバンドルします (「パッケージ タイプを変更せずに OSGi メタデータを既存のプロジェクトに追加する」セクションを参照)。これにより、Tomcat でレストレットを実行してテストすることができます。
  3. p2-maven-plugin プラグインで作成したローカルに定義された p2 サイトからのリソースを含む Eclipse でターゲットを定義します。このようにして、WAR プロジェクトから任意の依存関係を p2 サイトに収集し、それを Eclipse で定義されたターゲットにデプロイできます。
  4. 私が立ち往生しているのは、私が試したJersey Resourceをサービスとして登録しようとしていることです:
  5. JAX-RS OSGIコネクタを使用します.Jerseyがまだバージョン2 APIを定義していないときにJerseyのバージョン2 APIをエクスポートしているように見えるglassfish jerseyを使用しているため、最終的にあきらめました。これにより、Jersey ライブラリのバージョン 1.17 を使用したいときにパッケージ解決の問題が発生しました。
  6. Whiteboard a la Apache Felix HTTP Serviceを使用してリソースを登録します。これは、まだ機能していないように見える私の現在のアプローチです。
  7. 最後に、前の方法がうまくいかない場合は、Amdatuを試します
  8. 私が試すかもしれない別のルートは、ジャージープロジェクトのOSGIの章からのものです
于 2013-05-18T00:07:35.907 に答える
1

これは github の良い例です: https://github.com/ddragosd/jax-rs-on-karaf

于 2015-05-29T13:12:23.133 に答える