0

Javaアーティファクトからカスタムwsdlを生成する必要があります。cxfapisを使用してサービスを生成します。

シナリオを詳しく説明します。同じJavaアーティファクトのセットから異なるWSDLを生成したいと思います。このような要件の背後にある考え方は、ライセンスベースの操作/メッセージを顧客に提供することです。メッセージおよびサービスインターフェース/実装として定義されたJavaオブジェクトのセットがあります。Cxf API(ServerFactoryBean)を使用して、オンデマンドでService / WSDLを生成します(純粋に実行時の操作)。

明確にするために、シナリオの例を示します

public class InputBean {

    private XYZ xyz;
    private ABC abc;
    private PQR pqr; 

ここで、XYZ、ABC、PQRはいくつかのJavaオブジェクトであり、InputBeanは私のサービス実装クラスで使用されます。

要件は、ライセンスに基づいてこれらのフィールドを条件付きで持つことです

 if(XYZ Licensed){
   Include XYZ in bean
 }

 if(PQR Licensed){ 
     Include PQR in bean
  }
 if(XYZ and PQR licensed){  
   Inlcude XYZ and PQR
 }

私はこれが奇妙な要件であることを知っており、私の問題を明確に説明したかどうかはわかりません。継承(動的メソッドディスパッチ)を試してみましたが、ランダムな組み合わせが必要です。

どんな助けでもいただければ幸いです!

4

1 に答える 1

0

この問題は、必要なクラスのプレースホルダーを含むテンプレートファイル(無料のマーカーテンプレート)を作成することで解決しました。これは、実行時に必要なクラス名に置き換えられ、無料のマーカーAPIを使用してJavaソースファイルが作成され、JavaコンパイラAPIによってJavaクラスが作成されます。また、実行時にクラスをロードするためのカスタムクラスローダーも開発しました。すべての操作は、実行時にバックグラウンドで実行されます。私の要件に対してより良い解決策を見つけることができませんでしたが、期待どおりに完璧な結果が得られているので、これには満足しています。

于 2012-09-18T17:48:46.107 に答える