2012-12-17 6 views
5

WSO2 ESB例http://wso2.org/library/articles/2011/01/wso2-esb-example-file-processingで手を染め単純なCSVファイルWSO2は

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

この構成

<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> 
を用いSmooksので解析されている問題が発生ペイロード名前空間を含みます

は大部分正しい出力を返しますが、最初の行には正しくないペイロード名前空間が含まれています

<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> 

したがって、最初のname0値が読み取られたときには、それもまた間違っています。

のSmooksこれは

<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> 

入力として最後を含んようSmooksのは、それが求められているすべてをやっているに変換しますか?しかし、理解できる要素の数は4と数えられるので、csvにヘッダー行があるはずではありません。ヘッダー行を含めることで(特定の程度まで)解決できますが、要素数が正しくありません。私はcsvの最後の行に改行を入れるだけで終了を解決することができます。

どうすれば解決できますか?私は1年前に同じ質問をしているが、答えはない他のスレッドを見つけた。

+1

解決策を見つけた場合は、回答として投稿し、同意してください。できるだけ自分の質問に答えることはまったくいいです。そうすれば、stackoverflowはあなたの質問を回答として登録することができます。これはタイトルにその質問を示すだけです。 – joergl

答えて

0

これを今ソートしました。私のsmooksタグで

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

私は最初の入力要素をxmlに設定しました。テキストに変更すると問題が解決しました。 (WSO2のGUIエディタでは、これらの要素を持つことがデフォルトになりますが、チュートリアルにはこれらがありません)。

+0

質問ではなく、回答を回答に入れてください。 –