wso2esb json с управляющими символами (например, \ u000b = вертикальная табуляция = табуляция строк) - PullRequest
0 голосов
/ 04 сентября 2018

При публикации действительного документа json, содержащего управляющие символы, в API wso2esb 5.0.0, я получаю следующее исключение. Я использую JsonBuilder.

Пример JSON:

{ "message": "hello\u000bworld" }

Исключение:

[2018-09-04 12:08:13,025] ERROR - JsonUtil #writeAsJson. Could not convert OMElement to JSON. Invalid XML payload. Error>>> Invalid white space character (0xb) in text to output (in xml 1.1, could output as a character entity)
[2018-09-04 12:08:13,033] ERROR - FilterMediator Can not serialize OM Element jsonObject
java.lang.RuntimeException: Can not serialize OM Element jsonObject
    at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:994)
    at org.apache.synapse.commons.json.JsonUtil.toJsonStream(JsonUtil.java:1043)
    at org.apache.synapse.util.xpath.SynapseJsonPath.stringValueOf(SynapseJsonPath.java:85)
    at org.apache.synapse.mediators.builtin.PropertyMediator.getResultValue(PropertyMediator.java:351)
    at org.apache.synapse.mediators.builtin.PropertyMediator.mediate(PropertyMediator.java:108)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)
    at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97)
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
    at org.apache.synapse.rest.Resource.process(Resource.java:343)
    at org.apache.synapse.rest.API.process(API.java:399)
    at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:123)
    at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:101)
    at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:69)
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304)
    at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:75)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:325)
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:371)
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.ctc.wstx.exc.WstxIOException: Invalid white space character (0xb) in text to output (in xml 1.1, could output as a character entity)
    at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:471)
    at org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeCharacters(MTOMXMLStreamWriter.java:289)
    at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:261)
    at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:426)
    at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:555)
    at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875)
    at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:555)
    at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875)
    at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:555)
    at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875)
    at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:555)
    at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875)
    at org.apache.axiom.om.impl.llom.OMSerializableImpl.serialize(OMSerializableImpl.java:125)
    at org.apache.axiom.om.impl.llom.OMSerializableImpl.serialize(OMSerializableImpl.java:113)
    at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:988)
    ... 25 more
Caused by: java.io.IOException: Invalid white space character (0xb) in text to output (in xml 1.1, could output as a character entity)
    at com.ctc.wstx.api.InvalidCharHandler$FailingHandler.convertInvalidChar(InvalidCharHandler.java:55)
    at com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:623)
    at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:475)
    at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:469)
    ... 39 more

Последовательность передачи не выполнена. Как я могу избежать исключения и обработать этот документ json, как и другие документы json?

...