2013-02-13 96 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文件,但不適用於較大的文件。