2017-03-22 25 views
0

私たちは、あらゆる種類の情報を含む多くのCSVファイルを組織内で共有しています。私は特定の共有フォルダを監視し、新しいcsvファイルを読むための小さなJavaプログラムを書いた。私の目標は、SOAP Webサービスを通じて情報の読み取りと更新を許可することです。私の問題は、情報構造が静的ではないため、Java構造からWSDLファイルを作成することができないことです(たとえば、Springを使用して...)。私は動的なWSDLファイルを作成する必要があります。Javaの動的Webサービス(SOAP)プロバイダ

私はAxis2(http://axis.apache.org/axis2/java/core/)を探していましたが、WS定義でJavaクラスを作成してコンパイルし、.aarパッケージをビルドしてから移動する必要があるため、何か不足していると感じていますファイルをaxis2フォルダにコピーします。これは少し重いようです。

基本的に私は二つの方法が必要です

  • 検索(ID) - IDがNULLの場合>指定されたIDの行を返すし、次いで全て
  • 更新(ID)を返す - >行を更新しここで私は更新する必要があるフィールドと型を渡す必要があるので、動的コンテンツが必要になります。たとえば、

私はuser.csvを持っている:

このような何かを生成する必要があります
ID;FirstName;Age;Mail 
01;Stephanie;27;[email protected] 

[...]

<xsd:element name="delete"> 
      <xsd:complexType> 
       <xsd:sequence> 
        <xsd:element maxOccurs="1" minOccurs="1" name="id" type="xsd:string" /> 
       </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 


<xsd:element name="insert"> 
      <xsd:complexType> 
       <xsd:sequence> 
        <xsd:element maxOccurs="1" minOccurs="0" name="id" type="xsd:string" /> 
        <xsd:element maxOccurs="1" minOccurs="0" name="FirstName" type="xsd:string" /> 
        <xsd:element maxOccurs="1" minOccurs="0" name="Age" type="xsd:integer" /> 
        <xsd:element maxOccurs="1" minOccurs="0" name="Mail" type="xsd:string" /> 
       </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 

[...]

これを行うには誰も良い方法がありますか?

乾杯、 ステファニー

答えて

0

XMLだけで生の体を持つ2の操作で、簡単なWSを使用してください。

xmlは、WSDL以外の外部XSDに準拠している必要があります。サーバーにはすべてのXSDがあり、入力を検証し、CSVでのCRUD操作に使用できるJaxbなどのオブジェクトを作成できます。

+0

私はSWDLファイルを自分で作成することを提案します(私の自己生成)。しかし、エンドポイントは "フィールド"を扱う方法を知らないでしょうか、間違っていますか? – Stephanie

+0

入力をラップするxmlファイルをbyte []フィールドに入れることができます。別のフィールドに、更新するエンドポイントの一意のIDを指定します。したがって、サーバーでは、一意のID 。エンドポイントでは、別のフィールド(バイト[])の入力を検証する特定のXSDがあります。正しいオブジェクトを検証して作成することができます。どこでもCRUD操作を行うことができます。マスターwsは、キーの実装を知っている単なるルーターです。他のすべてのXSDは、WSDLの一部ではなく、クライアントと外部で共有されます –

関連する問題