使用WSO2 ESB时获取GZIP输出流出错

时间:2016-03-22 13:57:18

标签: wso2 wso2esb

我正在尝试在WSO2 ESB 4.9.0中创建一个应返回JPEG类型图像的API。

但是我收到此错误:由以下原因引起:org.apache.axis2.AxisFault:获取GZIP输出流时出错。

那么,是否可以在WSO2 ESB中关闭图像/ jpeg消息类型的GZIP压缩?

  

TID:[ - 1234] [] [2016-03-23 08:17:09,833]错误   {} org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator    - 获取GZIP输出流时出错{org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator}   org.apache.axis2.AxisFault:要输出的文本中的空字符无效     在org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)at at   org.apache.axis2.transport.http.ApplicationXMLFormatter.writeTo(ApplicationXMLFormatter.java:146)     在   org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator.writeTo(GzipMessageFormatterDecorator.java:66)     在   org.apache.synapse.transport.passthru.PassThroughHttpSender.submitResponse(PassThroughHttpSender.java:552)     在   org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:267)     在org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)at   org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:212)     在   org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:444)     在   org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:102)     在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)     在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)     在   org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)     在org.apache.synapse.rest.Resource.process(Resource.java:297)at   org.apache.synapse.rest.API.process(API.java:335)at   org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:97)     在   org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:52)     在   org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:266)     在   org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)     在   org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)     在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)     在   org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247)     在   org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)     在java.lang.Thread.run(Thread.java:745)引起:   com.ctc.wstx.exc.WstxIOException:文本中的空字符无效   输出在   com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:462)     在   org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeCharacters(MTOMXMLStreamWriter.java:289)     在   org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:250)     在   org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:415)     在   org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:562)     在   org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875)     在   org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:193)     在   org.apache.axis2.transport.http.ApplicationXMLFormatter.writeTo(ApplicationXMLFormatter.java:143)     ... 23更多引起:java.io.IOException:无效的空字符   输出的文本   com.ctc.wstx.api.InvalidCharHandler $ FailingHandler.convertInvalidChar(InvalidCharHandler.java:51)     在com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:623)     在   com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:554)     在   com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:460)     ... 30多个TID:[ - 1234] [] [2016-03-23 08:17:09,838]错误   {org.apache.synapse.transport.passthru.PassThroughHttpSSLSender} -   无法提交回复   {} org.apache.synapse.transport.passthru.PassThroughHttpSSLSender   org.apache.axis2.AxisFault:获取GZIP输出流时出错   org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator.handleException(GzipMessageFormatterDecorator.java:95)     在   org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator.writeTo(GzipMessageFormatterDecorator.java:76)     在   org.apache.synapse.transport.passthru.PassThroughHttpSender.submitResponse(PassThroughHttpSender.java:552)     在   org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:267)     在org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)at   org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:212)     在   org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:444)     在   org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:102)     在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)     在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)     在   org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)     在org.apache.synapse.rest.Resource.process(Resource.java:297)at   org.apache.synapse.rest.API.process(API.java:335)at   org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:97)     在   org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:52)     在   org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:266)     在   org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)     在   org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)     在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)     在   org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247)     在   org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)     在java.lang.Thread.run(Thread.java:745)引起:   org.apache.axis2.AxisFault:要输出的文本中的空字符无效     在org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)at at   org.apache.axis2.transport.http.ApplicationXMLFormatter.writeTo(ApplicationXMLFormatter.java:146)     在   org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator.writeTo(GzipMessageFormatterDecorator.java:66)     ... 22更多引起:com.ctc.wstx.exc.WstxIOException:无效的null   要输出的文本中的字符   com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:462)     在   org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeCharacters(MTOMXMLStreamWriter.java:289)     在   org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:250)     在   org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:415)     在   org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:562)     在   org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875)     在   org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:193)     在   org.apache.axis2.transport.http.ApplicationXMLFormatter.writeTo(ApplicationXMLFormatter.java:143)     ... 23更多引起:java.io.IOException:无效的空字符   输出的文本   com.ctc.wstx.api.InvalidCharHandler $ FailingHandler.convertInvalidChar(InvalidCharHandler.java:51)     在com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:623)     在   com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:554)     在   com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:460)     ... 30多个TID:[ - 1234] [] [2016-03-23 08:17:09,841]错误   {org.apache.synapse.core.axis2.Axis2Sender} -   内容编码:gzip,内容类型:图像/ JPEG,各不相同:接受编码,   发回消息时出现意外错误   {} org.apache.synapse.core.axis2.Axis2Sender   org.apache.axis2.AxisFault:无法提交响应   org.apache.synapse.transport.passthru.PassThroughHttpSender.handleException(PassThroughHttpSender.java:610)     在   org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:269)     在org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)at   org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:212)     在   org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:444)     在   org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:102)     在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)     在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)     在   org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149)     在org.apache.synapse.rest.Resource.process(Resource.java:297)at   org.apache.synapse.rest.API.process(API.java:335)at   org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:97)     在   org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:52)     在   org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:266)     在   org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)     在   org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)     在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)     在   org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:247)     在   org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run(NativeWorkerPool.java:172)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)     在java.lang.Thread.run(Thread.java:745)引起:   org.apache.axis2.AxisFault:获取GZIP输出流时出错   org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator.handleException(GzipMessageFormatterDecorator.java:95)     在   org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator.writeTo(GzipMessageFormatterDecorator.java:76)     在   org.apache.synapse.transport.passthru.PassThroughHttpSender.submitResponse(PassThroughHttpSender.java:552)     在   org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:267)     ... 20更多引起:org.apache.axis2.AxisFault:无效的null   要输出的文本中的字符   org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)at at   org.apache.axis2.transport.http.ApplicationXMLFormatter.writeTo(ApplicationXMLFormatter.java:146)     在   org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator.writeTo(GzipMessageFormatterDecorator.java:66)     ... 22更多引起:com.ctc.wstx.exc.WstxIOException:无效的null   要输出的文本中的字符   com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:462)     在   org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeCharacters(MTOMXMLStreamWriter.java:289)     在   org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:250)     在   org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:415)     在   org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(OMSerializerUtil.java:562)     在   org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:875)     在   org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:193)     在   org.apache.axis2.transport.http.ApplicationXMLFormatter.writeTo(ApplicationXMLFormatter.java:143)     ... 23更多引起:java.io.IOException:无效的空字符   输出的文本   com.ctc.wstx.api.InvalidCharHandler $ FailingHandler.convertInvalidChar(InvalidCharHandler.java:51)     在com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:623)     在   com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:554)     在   com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:460)     ... 30多个TID:[ - 1234] [] [2016-03-23 08:17:09,844]错误   {org.apache.synapse.mediators.builtin.LogMediator} - 无法构建   完整日志消息:无法序列化OM Element Envelope   {org.apache.synapse.mediators.builtin.LogMediator} TID:[ - 1234] []   [2016-03-23 08:17:09,845] ERROR {API_LOGGER.Photos} - 无法构建   完整日志消息:无法序列化OM Element Envelope   {API_LOGGER.Photos} TID:[ - 1234] [] [2016-03-23 08:17:09,850] INFO   {org.apache.synapse.mediators.builtin.LogMediator} - 收件人:   http://www.w3.org/2005/08/addressing/anonymous,WSAction :,   SOAPAction:,MessageID:   urn:uuid:e4e1882c-6a04-4c77-b802-0aaf7d5f73cb,方向:响应,   MESSAGE =执行默认'错误'序列,ERROR_CODE = 0,   ERROR_MESSAGE =   内容编码:gzip,内容类型:图像/ JPEG,各不相同:接受编码,   发回消息时出现意外错误,信封:   {org.apache.synapse.mediators.builtin.LogMediator}

1 个答案:

答案 0 :(得分:0)

根据错误日志判断* ESB正在将您的图像解析为application / xml。也许您在/repository/conf/axis2/axis2.xml文件中发生了配置错误?

构建器和格式化程序应定义为:

<messageBuilder contentType="image/jpeg" class="org.wso2.carbon.relay.BinaryRelayBuilder" />
<messageFormatter contentType="image/jpeg" class="org.wso2.carbon.relay.ExpandingMessageFormatter" />

另请参阅:http://sachirajapakse.blogspot.nl/2015/10/send-images-for-rest-api-in-wso2-esb.html

* org.apache.axis2.transport.http.ApplicationXMLFormatter.writeTo(ApplicationXMLFormatter.java:143)... 23更多引起:java.io.IOException:要在(..)输出的文本中无效的空字符