我的源代码中包含此部分:
<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”
任何人都可以帮我解决这个错误吗?
答案 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
异常堆栈是:
- 意外的字符((代码65279 / 0xFEFF)'?'):预期在[来源:java.io]中有效值(数字,字符串,数组,对象,'真'','假'或'空')。 InputStreamReader的@ 2fba237;第1行第2列(org.codehaus.jackson.JsonParseException)org.codehaus.jackson.JsonParser:1433(null)
- 无法从“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)
醇>考虑更改JSON文件的字符编码