0

以下のようにデータ サービス GetDepartmentData サービスを作成しました。

   <data enableBatchRequests="true" name="GetDepartmentDataService" transports="http https local">
   <config enableOData="false" id="LocalXEDS">
      <property name="carbon_datasource_name">LocalXEDB</property>
   </config>
   <query id="GetDeptQuery" useConfig="LocalXEDS">
      <sql>select dept_id,name,location from dept&#xd;where dept_id=?</sql>
      <result element="Departments" rowName="Department">
         <element column="dept_id" name="dept_id" xsdType="string"/>
         <element column="name" name="name" xsdType="string"/>
         <element column="location" name="location" xsdType="string"/>
      </result>
      <param name="dept_id" sqlType="INTEGER"/>
   </query>
   <operation name="GetDepartment_Operation">
      <description>  Returns the departments for the given department id.                                                                      &#xd;                                    </description>
      <call-query href="GetDeptQuery">
         <with-param name="dept_id" query-param="dept_id"/>
      </call-query>
   </operation>
</data>

データ サービス用のWSDl エンドポイント " MyEP " を作成し、このデータ サービスを呼び出す ESB を作成しました。応答を CSV ファイルに書き込む必要があります。以下は同じコードです:

<payloadFactory media-type="xml">
                <format>
                    <dat:GetDepartment_Operation xmlns:dat="http://ws.wso2.org/dataservice">
                        <dat:dept_id>$1</dat:dept_id>
                    </dat:GetDepartment_Operation>
                </format>
                <args>
                    <arg evaluator="xml" expression="//soapenv:Envelope/soapenv:Body/dat:GetDepartment_Operation/dat:dept_id" xmlns:dat="http://ws.wso2.org/dataservice" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/>
                </args>
            </payloadFactory>
            <call>
                <endpoint key="myEP"/>
            </call>
            <log level="full"/>
            <property name="transport.vfs.ReplyFileURI" scope="transport" type="STRING" value="file:///C:/Shilpa/sourcecode/FileConnector/Inbound?transport.vfs.Append=true"/>
            <property name="transport.vfs.ReplyFileName" scope="transport" type="STRING" value="order.csv"/>
            <property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="true"/>
            <property name="REST_URL_POSTFIX" scope="axis2" type="STRING" value=""/>

            <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
            <datamapper config="gov:datamapper/DBReadWritePSconfig.dmc" inputSchema="gov:datamapper/DBReadWritePSconfig_inputSchema.json" inputType="JSON" outputSchema="gov:datamapper/DBReadWritePSconfig_outputSchema.json" outputType="CSV"/>
            <call>
                <endpoint>
                    <address uri="vfs:file:///C:/Shilpa/sourcecode/FileConnector/Inbound/order.csv"/>
                </endpoint>
            </call>

以下のログ メッセージとエラーが表示されます。

     WARN - XMLInputReader Element name not found : axis2ns5:Departments
[2017-03-08 21:00:36,240] [] ERROR - DataMapperMediator DataMapper mediator : mapping failed
Input type is incorrect or Invalid element found in the message payload : axis2ns5:Departments
4

4 に答える 4