2

コンテンツを JSON として REST 経由で WSO2 データ サービスを呼び出しているときに、パラメーター化された get を送信する必要があるサービスを作成しました。

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

XML 形式で応答を取得していますが、REST サービスを呼び出すと、JSON 形式で応答が得られません。

curl を使用して複数のオプションを試しました: curl -i -H --header Content-Type:"application/json" "Accept: application/json"http://<ip>:<port>/services/TRAVEL_DSS_REST.HTTPEndpoint/Cost_Filter?PACKAGE_COST=1000

および Chrome Advanced Rest Client プラグイン。

提供されたソリューションを参照@このstackoverflowリンク

これを考慮すると、URL でエンコードされた WSO2-DS REST サービスにアクセスして JSON 応答を取得するときに、必ず GET パラメーターを送信する必要があると思います。

WSO2-ESB を介して WSO2-DS でこの REST サービスを呼び出しますが、ESB からエンコードされた要求を送信してサービスを呼び出す方法がわからないため、メッセージを JSON 形式で受信したいと考えています。

DS を呼び出すために WSO2 ESB で REST API を開発しましたが、コンソールでディレクトリ サービスの応答を確認できますが、クライアント ブラウザでは確認できません :( .. これが私のコード ブロックです。 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に追加する必要がある場合は、問題に関して私を助けてください。

ありがとう、ランジャン

4

2 に答える 2

0

JSONでレスポンスを取得するには、

次のパラメーターを $CARBON_HOME/repository/conf/axis2.xml に追加し、サーバーを再起動します。

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

curl as でサービスを呼び出します。

curl -X GET http://<ip>:<port>/services/TRAVEL_DSS_REST.HTTPEndpoint/Cost_Filter?PACKAGE_COST=1000 -H Accept:application/json
于 2013-05-23T03:17:31.600 に答える