2

カスタムメディエーターとそれに対応するFactory/Serializerクラスを開発して、シーケンス内で複雑な構成オプションを構成できるようにしました。これは、カーボンスタジオを使用したカーボンアプリプロジェクトで作成されました。

重要なのは、構成要素を機能させる唯一の方法は、jarファイルを.carファイルの外部にデプロイすることです。

.carファイルをデプロイして機能させることはできますか?正しく動作させるには、 META-INF / servicesフォルダーをどこに置く必要がありますか?

これが私のCarbonAppProject構造です

CarbonApp
+--artifacts
   +--lib
   +--library
      +--bundle
         +--jXLS <-- Java Library Artifact
   +--synapse
      +--mediator
         +--XlsToObjectMediator <-- Custom Mediator Artifact
+--builder
+--META-INF
   +--services
      +--org.apache.synapse.config.xml.MediatorFactory <-- FILE
      +--org.apache.synapse.config.xml.MediatorSerializer <-- FILE
+--src
   +--main
      +--java
         +--<package> <-- mediator, factory and serializer clases

どんな助けでも大歓迎です。

4

2 に答える 2

2

これをこのバージョンのCarbonStudioで動作させることはできませんが、新しいバージョンで動作させることは可能です。新しいバージョンはhttp://builder1.us1.wso2.org/~developerstudio/developer-studio/2.0.0/RC1/wso2-developer-studio_2.0.0.RC1.zipから入手できます。

手順。

  1. ESBカスタムメディエータープロジェクトを作成し、そこにメディエーターソースを作成します
  2. META-INF/servicesフォルダーを同じプロジェクトのsrc/main/resourcesフォルダーにコピーします。
  3. Mavenを使用してカスタムメディエータープロジェクトをビルドする
  4. Javaライブラリアーティファクトプロジェクトを作成し、それにjXLSライブラリを追加してください。
  5. Mavenを使用してJavaライブラリアーティファクトプロジェクトをビルドする
  6. カーボンアプリケーションプロジェクトの作成
  7. カーボンアプリケーションプロジェクトの依存関係として、カスタムメディエータープロジェクトとJavaライブラリアーティファクトプロジェクトを追加します。
  8. MavenでC-Appプロジェクトをビルドする

これで、ESBカスタムメディエーターを問題なくESBで実行できるようになります。

.
|-- pom.xml
`-- src
    `-- main
        |-- java
        |   `-- ddd
        |       `-- dd.java
        `-- resources
            `-- META-INF
                `-- services
                    |-- org.apache.synapse.config.xml.MediatorFactory
                    `-- org.apache.synapse.config.xml.MediatorSerializer

メディエータープロジェクトの構造は上記のようになります

お役に立てれば!!

ありがとう。

/ハルシャナ

于 2012-05-31T09:06:04.407 に答える
1

JavaLibraryArtifactプロジェクトとカスタムメディエータープロジェクトの間にプロジェクトレベルの依存関係を宣言しても、これが解決されるとは思いません。

ただし、メディエータープロジェクトから実際のサードパーティライブラリに依存関係を追加することで、これを実現できます。

手順:

  1. カスタムメディエータープロジェクトを右クリックし、[ビルドパス]->[ビルドパスの構成]を選択します
  2. [ライブラリ]タブに移動し、[ジャーの追加]ボタンを選択します。これにより、[プロジェクトブラウザ]ダイアログが表示されます
  3. プロジェクトブラウザでJavaLibraryArtifactプロジェクトを展開し、そこにあるファイルリストからjXLSライブラリを選択して、[OK]をクリックします。

これで、jXLSがカスタムメディエータープロジェクトのビルドパスに追加されました。したがって、カスタムメディエータープロジェクトにエラーは表示されません。

カスタムメディエータープロジェクトの.Classpathファイルを開くと、次のようなエントリが表示されます。

<classpathentry kind="lib" path="/JavaLibArtifactProject/jXLS.jar"/>

Mavenからのコンパイルエラーを回避するには、カスタムメディエータープロジェクトpom.xmlのjXLSライブラリに依存関係を追加する必要があります。

上記の手順に従うことで、プロジェクトでJXLSライブラリが重複するのを防ぐことができます。

お役に立てれば!!

ありがとう。

/ハルシャナ

于 2012-06-04T07:04:17.217 に答える