ich einen Datendienst GetDepartmentData Service erstellt haben, wie unten:WSO EI6-How eine Antwort von einem DSS in eine CSV-schreiben-Datei
<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
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. 
 </description>
<call-query href="GetDeptQuery">
<with-param name="dept_id" query-param="dept_id"/>
</call-query>
</operation>
</data>
ich eine WSDL-Endpunkt „MyEP“ erstellt haben, für die Daten Service und ich habe ESB erstellt, um diesen Datendienst aufzurufen, und ich möchte die Antwort in CSV-Datei schreiben. Unten ist der Code für gleiche:
<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>
ich die unten Protokollmeldung und Störung erhalte:
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
Vielen Dank für Ihre Antwort Ernesto ... Ich habe versucht, Enrich Mediator, aber es ist immer noch die gleichen Fehler für die Abteilung jetzt. FEHLER - DataMapperMediator DataMapper Mediator: Zuordnung fehlgeschlagen Eingabetyp ist falsch oder ungültiges Element in der Nachrichtennutzlast gefunden: axis2ns5: Abteilung – Shilpa
In diesem Fall müssen Sie mir Ihre Datamapping-Konfiguration zeigen, um das Szenario in meiner Umgebung zu reproduzieren. – Ernesto
Hier ist meine Datenzuordnungskonfiguration in meiner Antwort. – Shilpa