2013-02-13 100 views
2

我通过WSO2 API管理WSO2 API管理器 - 与非XML响应

http://api.qrserver.com/v1/create-qr-code/?data=HelloWorld&size=100x100

它返回一个QR码图像试图代理下面的调用发布API。我使用http://api.qrserver.com/v1/作为终端发布了API,在那里没有问题。但是,当我通过API经理进行电话,我得到以下错误:

curl -H 'Authorization:Bearer 7q6W4LteX9idveFWbSa_oaGPhVsa' 'http://ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com:8280/qrcode/1.0.0/create-qr-code/?data=HelloWorld&size=100x100' 

<Exception>Unexpected response received. HTTP response code : 200 HTTP status : OK exception : com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0x89 (at char #1, byte #-1)</Exception> 
进行直接调用的响应头,似乎对我很好(MIME类型的图像/ PNG格式正确设置)时

,但WSO2 API代理拒绝响应...我做错了什么?使用响应mediaType =“image/png”设置wadl文件似乎也没有帮助。

在此先感谢

+0

您可以检查在axis2 .xml中添加的特定媒体类型。我们在哪里定义消息格式化程序和内容类型的构建器。你可能需要添加图像/ PNG – Ratha 2013-02-13 13:30:19

+0

太棒了!在为image/png添加formatter和builder之后,调用似乎成功了。您能否请我指出解释这些更高级主题的文档?非常感谢! – user2068318 2013-02-13 14:10:26

+0

这里是一篇文章解释的东西http://wso2.org/library/articles/axis2-configuration-part2-learning-axis2-xml – Ratha 2013-02-13 15:32:51

回答

0

此问题是由于默认情况下没有在API经理axis2.xml有比赛消息的建设者和格式化。请将以下参数添加到axis2.xml。

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

谢谢。 Sanjeewa。

+0

hmm ..添加哪些参数? – kleopatra 2013-03-27 14:58:57

0

我在wso2 esb中有类似的问题。似乎该响应适用于简短的xml文件,但不适用于较大的文件。