如何用mule读取json文件?

时间:2015-05-13 17:20:50

标签: json mule esb

我的源代码中包含此部分:

<file:inbound-endpoint connector-ref="fileConnector" path="C:/tmp/input" encoding="UTF-8" mimeType="application/json">
       <file:filename-wildcard-filter pattern="*.json"/>
</file:inbound-endpoint>

<json:json-to-object-transformer returnClass="java.util.HashMap"/>

<logger level="INFO" message="#[message.payload]"/>
一切都编好了!但是在执行时抛出下一个异常:“消息:无法从”json“转换为”java.util.HashMap“代码:MULE-ERROR-109”

任何人都可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

流程如下:

<file:inbound-endpoint 
  connector-ref="fileConnector" path="C:/tmp/input" 
  doc:name="File Input" responseTimeout="10000" 
  encoding="UTF-8" mimeType="text/plain">
  <file:filename-wildcard-filter pattern="*.json"/>
</file:inbound-endpoint>

<json:json-to-object-transformer returnClass="java.util.HashMap"doc:name="JSON to Object"/>`
     

错误发生在JSON文件中。人物   编码不对,因此我生成了错误   试图通过<json: json-to-object-transformer returnClass = "java.util.HashMap" doc: name = "JSON to Object" / >进行转换   用<file: inbound-endpoint>阅读文件后   我定义为 encoding =“UTF-8”

的属性

<强>解决方案

  

将JSON文件的字符编码更改为“UTF-8”

知识库:

  

如果异常堆栈是:

     

消息:无法从“json”转换为“java.util.HashMap”代码:   MULE_ERROR-109

           

异常堆栈是:

     
      
  1. 意外的字符((代码65279 / 0xFEFF)'?'):预期在[来源:java.io]中有效值(数字,字符串,数组,对象,'真'','假'或'空')。 InputStreamReader的@ 2fba237;第1行第2列(org.codehaus.jackson.JsonParseException)org.codehaus.jackson.JsonParser:1433(null)
  2.   
  3. 无法从“json”转换为“java.util.HashMap(org.mule.api.transformer.TransformerException)org.mule.module.json.transformers.JsonToObject:132   (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerException.html
  4.         

    考虑更改JSON文件的字符编码