0

「WSO2 データ サービス サーバー」で作成されたサービスをローカル .NET クライアント (Windows アプリケーション) で使用しようとしています。サービスと通信できます(サービスが提供する操作のリストを表示できました)。しかし、メソッドアプリケーションを呼び出そうとすると、次のエラーがスローされます。

名前空間「XYZ」の XML 要素「ABCD」は、メソッドと型を参照しています。WebMethodAttribute を使用してメソッドのメッセージ名を変更するか、XmlRootAttribute を使用して型のルート要素を変更します。

Visual Studio を介して Windows アプリケーションへのサービス参照を追加し、メソッドを呼び出してみました

上記の問題を修正するための段階的なプロセスを誰か教えてもらえますか?

4

2 に答える 2

0

結果セットに別の名前を付ける以外の解決策はありますか?

Web サービスに 3 つのメソッドがあり、それらすべてが同じものをエクスポートする場合

次に、たとえば、Customers1、Customers2、および Customers3 に名前を変更するのは不自然に感じます。

これは、.NET で問題を引き起こす私のサンプルです。すべて Entries->Entry を返すメソッドが 3 つあるためです。

<data name="ws_getSubnoCCInfo" serviceNamespace="com.test.ws">
   <config id="tro">
      <property name="driverClassName">oracle.jdbc.driver.OracleDriver</property>
      <property name="url">jdbc:oracle:thin:xxx/yyy@10.10.10.10:1521/DB</property>
      <property name="username">xxx</property>
      <property name="password">yyy</property>
   </config>
   <query id="subnoHasCCSQL" useConfig="tro">
      <sql>select case when count(*) &gt; 0 then 'OK' else 'NOK' end hasCC  from ccinfo where subno = :subno</sql>
      <result element="Entries" rowName="Entry">
         <element column="hasCC" name="hasCC" xsdType="string"/>
      </result>
      <param name="subno" sqlType="STRING"/>
   </query>
   <query id="idNoHasCCSQL" useConfig="tro">
      <sql>select case when count(*) &gt; 0 then 'OK' else 'NOK' end hasCC from ccinfo cc, tabs.crm_departement ui where cc.contrno = ui.contrno and ui.id_no = :id_no</sql>
      <result element="Entries" rowName="Entry">
         <element column="hasCC" name="hasCC" xsdType="string"/>
      </result>
      <param name="id_no" sqlType="STRING"/>
   </query>
   <query id="contrnoHasCCSQL" useConfig="tro">
      <sql>select case when count(*) &gt; 0 then 'OK' else 'NOK' end hasCC from ccinfo cc where contrno = :contrno</sql>
      <result element="Entries" rowName="Entry">
         <element column="hasCC" name="hasCC" xsdType="string"/>
      </result>
      <param name="contrno" sqlType="STRING"/>
   </query>
   <operation name="subnoHasCC">
      <call-query href="subnoHasCCSQL">
         <with-param name="subno" query-param="subno"/>
      </call-query>
   </operation>
   <operation name="idNoHasCC">
      <call-query href="idNoHasCCSQL">
         <with-param name="id_no" query-param="id_no"/>
      </call-query>
   </operation>
   <operation name="contrnoHasCC">
      <call-query href="contrnoHasCCSQL">
         <with-param name="contrno" query-param="contrno"/>
      </call-query>
   </operation>
</data>
于 2013-02-15T09:47:03.783 に答える
0

これは、Data Service 構成で操作と要素に同じ名前を使用した場合に発生します。タイプとメソッドを区別できないサービス参照を追加すると、VS でプロキシが作成されます。Data Service 構成で操作やその他の XML 属性に別の名前を付けてみてください。それでもうまくいかない場合は、Data Service の構成を投稿してください。

于 2012-05-17T17:34:51.407 に答える