1

アプリケーションを作成してKarafにデプロイする必要があります。しかし、私はラクダコンポーネントとJavaコンポーネント(単純な春の豆)を使用する必要があります。フローは次のようになります。

WebService(not matter for me) -> camel-component -> spring-bean -> camel-component -> WebService(not matter for me).

これは単純なルーティングです。しかし、私が必要としているのは、karafが受け入れてデプロイするOSGiバンドルのディレクトリー構造です。

たとえば、私は持っています:

su-camel
  -src
    -main
      -resources
        -META-INF
          xbean.xml (spring-bean)
    -test
      -java
      -resources

su-bean
  -src
    -main
      -java
      -resources
        -META-INF
          xbean.xml (spring-bean)
    -test
      -java
      -resources

.jarすべてをmavenでパッケージ化しているので、アプリケーションが正しくデプロイされるように、OSGiバンドルファイルにどのディレクトリ構造を保持する必要がありますか?ご覧のとおり、 moduleとmoduleには2つのsrcディレクトリがあります。su-camelsu-bean

.zipservicemixは、上記で説明した構造で追加されたすべてのコンポーネントを含むファイルを受け入れることを知っています。karafはそのような構造をサポートしていますか?

4

2 に答える 2

3

最も簡単な解決策は、Bean と camel ルートを含むバンドルを 1 つだけ作成することです。通常、Bean からルートを分割する必要はありません。何らかの理由で分割する必要がある場合は、単純に 2 つのバンドルを使用してください。

展開を容易にするために、バンドルと最終的にはそれらのさらなる依存関係の両方をリストする karaf 機能ファイルを使用できます。Karaf は、多くのバンドルを含むことができる .kar ファイルもサポートしています。kar ファイルは、karaf サーバーが maven リポジトリにアクセスできない場合に使用する方法です。

于 2012-07-25T21:53:27.027 に答える
2

適切な OSGi ソリューションは、プロジェクトごとに 1 つずつ、2 つのバンドルを作成し、両方をデプロイすることです。これを行いたくない場合は、プロジェクトのマニフェストで Embed-Dependency プロパティを使用して、依存関係 (camel) パッケージを含めることができます。これにより、展開するバンドルが 1 つだけ作成されます

于 2012-07-25T16:44:04.410 に答える