2013-05-22 50 views
2

雖然通過REST與內容爲JSON調用WSO2數據服務, 我創建了需要我送的服務的參數化得到的,這在我的情況是WSO2 DSS - 問題調用REST,GET操作JSON

http://localhost:9765/services/TRAVEL_DSS_REST.HTTPEndpoint/Cost_Filter?PACKAGE_COST=1000 

儘管我以XML格式獲得響應,但在調用REST服務時,我並沒有以JSON格式獲得響應。

嘗試多種選擇使用curl: 捲曲-i -H --header的Content-Type: 「應用/ JSON」 「接受:應用/ JSON」 http://<ip>:<port>/services/TRAVEL_DSS_REST.HTTPEndpoint/Cost_Filter?PACKAGE_COST=1000

和Chrome高級REST客戶端插件。

簡稱考慮到這一點提供@This stackoverflow link

的解決方案,我認爲我們有必要發送GET參數,同時擊中在URL編碼,以獲得JSON響應WSO2-DS REST服務。

我會通過WSO2-ESB在WSO2-DS上調用這個REST服務,不確定我們如何發送來自ESB的編碼請求來調用服務,我希望以JSON格式接收消息。

我在WSO2 ESB中開發了一個REST API來調用DS,而我能夠在控制檯中看到目錄服務的響應,我無法在客戶端瀏覽器中看到它:(這裏是我的REST API

 `<api xmlns="http://ws.apache.org/ns/synapse" name="DSSClient" context="/DSSClient" hostname="localhost"> 
<resource methods="GET" uri-template="/{str1}"> 
    <inSequence> 
     <property name="REST_URL_POSTFIX" expression="fn:concat('/Cost_Filter?PACKAGE_COST=',get-property('uri.var.str1'))" scope="axis2" type="STRING"/> 
     <log level="full"/> 
     <send> 
      <endpoint> 
       <address uri="http://10.203.245.47:9765/services/TRAVEL_DSS_REST.HTTPEndpoint/"/> 
      </endpoint> 
     </send> 
    </inSequence> 
    <outSequence> 
     <log level="full"/> 
     <log separator=","> 
      <property name="response" value="***starting OUT Sequence****"/> 
     </log> 
     <property name="messageType" value="application/json/badgerfish" scope="axis2" type="STRING"/> 
     <property name="ContentType" value="application/json/badgerfish" scope="axis2" type="STRING"/> 
     <send/> 
    </outSequence> 
    <faultSequence/> 
</resource> 

`

控制檯日誌以相同的代碼塊是

[2013-05-23 11:12:12,833] INFO - LogMediator To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:19b3edc6-1203-4778-b14d-47bb3a66e959, Direction: response, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><VALID_PACKAGES xmlns="http://www.wso2.org/dss_rest"><PACAKAGE><PACKAGE_ID>2</PACKAGE_ID><PACKAGE_NAME>Adventure</PACKAGE_NAME></PACAKAGE></VALID_PACKAGES></soapenv:Body></soapenv:Envelope> [2013-05-23 11:12:12,834] INFO - LogMediator To: http://www.w3.org/2005/08/addressing/anonymous,WSAction: ,SOAPAction: ,MessageID: urn:uuid:19b3edc6-1203-4778-b14d-47bb3a66e959,Direction: response,response = ***starting OUT Sequence****

請幫助我解決問題,如果代碼中有任何或任何參數需要添加到conf。

感謝, 蘭詹

回答

1

我周圍的工作,這種情況下工作時,我<property name="Content-Type" value="application/json/badgerfish" scope="transport" type="STRING"/> 之前派調解員,你可以看到在捲曲的響應。

0

爲了獲得JSON響應,

添加下面的參數設置爲$ CARBON_HOME /庫/ conf目錄/ axis2.xml並重新啓動服務器。

<parameter name="httpContentNegotiation">true</parameter> 

調用服務與捲曲的,

curl -X GET http://<ip>:<port>/services/TRAVEL_DSS_REST.HTTPEndpoint/Cost_Filter?PACKAGE_COST=1000 -H Accept:application/json 
+0

謝謝Lakmali,該解決方案可幫助我在curl中接收JSON響應,請幫助我解決其他部分中無法從創建用於調用DS的REST API獲得適當響應的其他部分。 – Ranjan