2012-12-17 7 views
5

Dabbling con WSO2 ESB esempio http://wso2.org/library/articles/2011/01/wso2-esb-example-file-processing ma incontra un problema in cui quando un semplice file csvWSO2 esempio elaborazione dei file ESB smooks csv parser prima linea comprende payload namespace

name0,value0 
name1,value1 
name2,value2 
name3,value3 

viene analizzato da smooks utilizzando questa configurazione

<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.1.xsd"> 
<csv:reader fields="name,value" /> 
</smooks-resource-list> 

risultati in gran parte l'output corretto ma la prima riga include lo spazio dei nomi del payload che non è corretto

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <text xmlns="http://ws.apache.org/commons/ns/payload">name0,value0 
name1,value1 
name2,value2 
name3,value3</text> 
</soapenv:Body> 
</soapenv:Envelope> 

modo che quando il primo valore NAME0 viene letto include il che è anche corretto.

Smooks quindi lo converte in

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soapenv:Body> 
    <csv-set> 
     <csv-record number="1"> 
      <name>&lt;?xml version='1.0' encoding='utf-8'?>&lt;text xmlns="http://ws.apache.org/commons/ns/payload">name0</name> 
      <value>value0</value> 
     </csv-record> 
     <csv-record number="2"> 
      <name>name1</name> 
      <value>value1</value> 
     </csv-record> 
     <csv-record number="3"> 
      <name>name2</name> 
      <value>value2</value> 
     </csv-record> 
     <csv-record number="4"> 
      <name>name3</name> 
      <value>value3&lt;/text></value> 
     </csv-record> 
    </csv-set> 
</soapenv:Body> 
</soapenv:Envelope> 

Così è Smooks facendo tutto ci si chiede come ingresso include l'AS ultima? Tuttavia, il numero di elementi si capisce sono contati come 4 quindi non è come se si suppone il csv avere una riga di intestazione. Posso risolvere (in una certa misura) includendo una riga di intestazione ma il conteggio dell'elemento non è corretto. Posso risolvere il finale chiudendo semplicemente un ritorno a capo sull'ultima riga di csv.

Come posso risolvere questo? Ho trovato un altro thread un anno fa facendo la stessa domanda ma senza risposte.

+1

Se avete trovato la soluzione alla tua domanda, si prega di inviare come una risposta e lo accetto. È perfettamente corretto rispondere alle tue domande quando puoi. In questo modo lo stackoverflow può registrare la tua domanda come risposta, che non può quando lo si indica nel titolo. – joergl

risposta

0

ho ordinato questo momento. Nel mio tag smooks

<smooks xmlns="http://ws.apache.org/ns/synapse" config-key="conf:/smooks-config.xml"> 
    <input type="text"/> 
    <output type="xml"/> 
</smooks> 

Ho avuto il primo elemento di input impostato su xml. La modifica al testo ha risolto il problema. (Nell'editor GUI in WSO2 il valore predefinito ad avere questi elementi, mentre l'esercitazione non ha questi a tutti).

+0

Si prega di inserire la risposta nella risposta, non è nella domanda. –