2017-01-18 30 views
0

我試圖創建一個自定義Json到mule(自定義轉換器)的XML轉換,它只是一對一的直接映射值,而不是一個複雜的轉換。嘗試創建自定義Json到Mule的XML轉換器時出錯

這裏是我的流程:

<?xml version="1.0" encoding="UTF-8"?> 

<mule xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:json="http://www.mulesoft.org/schema/mule/json" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/json http://www.mulesoft.org/schema/mule/json/current/mule-json.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd"> 
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" basePath="/test" doc:name="HTTP Listener Configuration"/> 
    <flow name="test_finalFlow"> 
     <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/> 
     <json:json-to-xml-transformer metadata:id="57c0cd3d-ece4-48fe-9adf-79fc36a31b12" doc:name="JSON to XML"/> 
     <logger level="INFO" doc:name="Logger"/> 
    </flow> 
</mule> 

enter image description here

我使用論文文件來配置我Json to XML組件

jsonFile.json:

{ 
    "inData": "value" 
} 

XML文件:outData.xml

<?xml version='1.0' encoding='UTF-8'?> 
<root> 
    <outData>someValue</outData> 
</root> 

設置的元數據:

enter image description here

enter image description here

現在,當我部署應用程序,我沒有任何問題,

當我使用郵遞員與有效載荷發送POST數據我得到了這些錯誤:

enter image description here

,這是控制檯的全部輸出:

******************************************************************************************************* 
*   - - + APPLICATION + - -   *  - - + DOMAIN + - -  * - - + STATUS + - - * 
******************************************************************************************************* 
* test_final         * default      * DEPLOYED   * 
******************************************************************************************************* 

ERROR 2017-01-17 21:23:29,014 [[test_final].HTTP_Listener_Configuration.worker.01] org.mule.exception.DefaultMessagingExceptionStrategy: 
******************************************************************************** 
Message    : java.io.IOException: Illegal character: <i> (javax.xml.stream.XMLStreamException) 
Payload    : [email protected] 
Transformer   : JsonToXml{this=6993c8df, name='JsonToString', ignoreBadInput=false, returnClass=SimpleDataType{type=java.lang.String, mimeType='text/xml', encoding='null'}, sourceTypes=[SimpleDataType{type=java.lang.String, mimeType='*/*', encoding='null'}, SimpleDataType{type=java.io.InputStream, mimeType='*/*', encoding='null'}, SimpleDataType{type=[B, mimeType='*/*', encoding='null'}, SimpleDataType{type=java.io.Reader, mimeType='*/*', encoding='null'}, SimpleDataType{type=java.net.URL, mimeType='*/*', encoding='null'}, SimpleDataType{type=java.io.File, mimeType='*/*', encoding='null'}]} 
Element    : /test_finalFlow/processors/0 @ test_final:test_final.xml:13 (JSON to XML) 
Element XML   : <json:json-to-xml-transformer metadata:id="57c0cd3d-ece4-48fe-9adf-79fc36a31b12" doc:name="JSON to XML"></json:json-to-xml-transformer> 
-------------------------------------------------------------------------------- 
Root Exception stack trace: 
java.io.IOException: Illegal character: <i> 
    at de.odysseus.staxon.json.stream.impl.Yylex.yylex(Yylex.java:641) 
    at de.odysseus.staxon.json.stream.impl.Yylex.nextSymbol(Yylex.java:271) 
    at de.odysseus.staxon.json.stream.impl.JsonStreamSourceImpl.next(JsonStreamSourceImpl.java:107) 
    at de.odysseus.staxon.json.stream.impl.JsonStreamSourceImpl.peek(JsonStreamSourceImpl.java:250) 
    at de.odysseus.staxon.json.JsonXMLStreamReader.consume(JsonXMLStreamReader.java:128) 
    at de.odysseus.staxon.json.JsonXMLStreamReader.consume(JsonXMLStreamReader.java:161) 
    at de.odysseus.staxon.base.AbstractXMLStreamReader.initialize(AbstractXMLStreamReader.java:216) 
    at de.odysseus.staxon.json.JsonXMLStreamReader.<init>(JsonXMLStreamReader.java:65) 
    at de.odysseus.staxon.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:139) 
    at de.odysseus.staxon.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:120) 
    at de.odysseus.staxon.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:44) 
    at org.mule.module.json.transformers.JsonToXml.doTransform(JsonToXml.java:55) 
    at org.mule.transformer.AbstractTransformer.transform(AbstractTransformer.java:415) 
    at org.mule.transformer.AbstractTransformer.transform(AbstractTransformer.java:366) 
    at org.mule.DefaultMuleMessage.transformMessage(DefaultMuleMessage.java:1589) 
    at org.mule.DefaultMuleMessage.applyAllTransformers(DefaultMuleMessage.java:1488) 
    at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1462) 
    at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1454) 
    at org.mule.transformer.AbstractTransformer.process(AbstractTransformer.java:114) 
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27) 
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:108) 
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) 
    at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:98) 
    at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:59) 
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27) 
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) 
    at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:98) 
    at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:59) 
    at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:102) 
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27) 
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:108) 
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) 
    at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:98) 
    at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:59) 
    at org.mule.construct.DynamicPipelineMessageProcessor.process(DynamicPipelineMessageProcessor.java:55) 
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27) 
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:108) 
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) 
    at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:88) 

關於造成錯誤的原因的任何想法?

java.io.IOException:Illegal character:i?

注:

我想,因爲我只用Mule server 3.8.1 CE現在創建這個定製變壓器,我很快就會到企業版,這就是爲什麼我試圖訪問在此時部署在社區版服務器中。

回答