5

ServiceMix と Camel の使用を開始し、多くの例を実行しました。

OSGi であるサンプルは、ホット デプロイまたはコンソール経由で ServiceMix にデプロイできるようですが、OSGI ではないプロジェクトをデプロイする方法がわかりません。それはできますか?

たとえば、camel-example-cxf-proxy という Camel 2.10.0 のサンプル プロジェクトを見ています。いくつかの変更を加えたので、ServiceMix にロードしたいと思いました。deploy ディレクトリにコピー/貼り付けするとロードされますが、osgi:start id 経由で実行しようとすると失敗します。

ただし、IDE からスタンドアロンとして実行すると問題なく動作し、SoapUI を介してリクエストを送受信できます。

サンプルが完成したら、Eclipse で独自のプロジェクトを作成し、IDE と ServiceMix でテストを行いたいと思います。OSGi の利点はまだよくわかりません。だから私は自分のプロジェクトに OSGi を使用することを強いられているわけではありません。

私の主な質問は、OSGi 非 JBI 非準拠のプロジェクトを servicemix にデプロイできますか? camel-example-cxf-proxy のようなもの。はいの場合、どうすればできますか?いいえの場合、どうすれば camel-example-cxf-proxy を OSGi 化できますか?

ありがとうございました :)

4

3 に答える 3

5

カーネルとしてApacheKarafを使用するApacheServiceMixは、プラグ可能なデプロイメントユニットをサポートします。OSGiが本体ですが。

JBIアーティファクトをデプロイできます(たとえば、JBIはApache ServiceMix 3.xのデプロイメントユニットとして使用されました)。そのため、SMX4.xでJBIを実行するための移行パスとしてこれを提供します。

プレーンなWARファイルもデプロイできます。たとえば、デプロイディレクトリに.warファイルをドロップするだけです。シェルからデプロイする場合は、デプロイヤーにwarのプレフィックスを付けて、warデプロイヤーを使用できるようにする必要があります。

さまざまなプラグイン可能なデプロイヤーに関するいくつかのドキュメントがここにあります http://fusesource.com/docs/esbent/7.0/esb_deploy_osgi/UrlHandlers.html

たとえば、Mavenを使用してApache Wicket WARの例をインストールするには、シェルから実行できます。

osgi:install war:mvn:org.apache.wicket/wicket-examples/1.4.7/war?Web-ContextPath=wicket

デプロイヤーに関するApacheのドキュメントは、主にApacheKarafhttp : //karaf.apache.org/manual/2.2.9/users-guide/deployer.htmlでドキュメント化されています。

ここで、OSGiアプリケーションをデプロイするのは、組み立てるのに少し苦労する可能性があります。そしてそれが、FuseSourceがFABを作成してはるかに簡単にする理由です。私はこれについて少しブログを書きました。これはビデオやその他の資料を参照しています:http ://www.davsclaus.com/2012/08/osgi-deployment-made-easy-with-fab.html

FABを使用すると、OSGiに苦労することなく、通常のMavenプロジェクトをすぐにデプロイできます。

于 2012-09-08T08:48:50.923 に答える
3

プロジェクトが Maven プロジェクトの場合は、次を試すことができます。

mvn install

次に、servicemix を起動し、servicemix コマンド ラインで次のように入力します。

install mvn:groupId/artifactId/version

これにより、バンドル ID が表示されます。次に、バンドルを開始します。

start <bundle_id>

コマンド「list」でバンドルの状態を確認できます

于 2012-09-07T14:50:05.227 に答える
1

プロジェクトは、servicemix / karaf にインストールされるバンドルである必要があります。したがって、OSGi でキャメル プロジェクトを機能させる手順は次のとおりです。

  1. pom で maven バンドル プラグインを使用し、必要に応じて必要なパッケージをインポート/エクスポートするように構成します。

  2. OSGi が起動できる方法で camel コンテキストが定義されていることを確認してください。これは、バンドルのアクティベーター、適切な場所のスプリング構成、または適切な場所のブループリント構成のいずれかです。

詳細については、2 つの karaf チュートリアルを参照してください。

CXF: http://www.liquid-reality.de/x/EoBk

ラクダ: http://www.liquid-reality.de/x/G4Bk

于 2012-09-08T12:57:33.557 に答える