2017-09-21 2 views
0

J'ai besoin d'appeler le service de repos, qui accepte "Content-Type: application/json" dans l'en-tête, mais quand j'essaie de l'appeler à partir de l'ESB. WSO2 ajoute automatiquement "charset = utf-8". Je ne suis pas sûr de savoir comment l'enlever.Comment faire pour supprimer charset = utf-8 dans WSO2 ESB

J'ai également utilisé la propriété ContentType mais pas de chance.

 <property name="HTTP_METHOD" scope="axis2" type="STRING" value="PUT"/> 
<property name="ContentType" scope="axis2" type="STRING" value="application/json"/> 
        <header expression="fn:concat('Basic ', get-property('ENCODED_URL'))" name="Authorization" scope="transport" xmlns:ns="http://org.apache.synapse/xsd"/> 
        <payloadFactory media-type="json"> 
         <format>{ 
            "name": "XXX_Token", 
            "type": "XXXX-cf04186e2156_sessionID", 
            "version": "1.0.1", 
            "Attribute-N": $1 
            } 
         </format> 
         <args> 
           <arg expression="$ctx:XXXTokenValue" literal="false" /> 
         </args> 
        </payloadFactory> 
        <property name="REST_URL_POSTFIX" scope="axis2" value=""/> 
        <call> 
         <endpoint> 
          <address trace="disable" uri="https://XXXXX:9493/governance/restservices/52b1caba-b507-4f6a-95bc-2ea7b2418e67"/> 
         </endpoint> 
        </call> 

Journaux:

- End : Call mediator - Non Blocking Call 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "PUT /governance/restservices/5XXXXX2ea7b2418e67 HTTP/1.1[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "X-AspNet-Version: 4.0.30319[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "Authorization: Basic YWRtaW46YWRtaW4=[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "Content-Type: application/json; charset=utf-8[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "X-Powered-By: ASP.NET[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "Cache-Control: private, max-age=0[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "Transfer-Encoding: chunked[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "Host: XXXXXXz:9493[\r][\n]" 
TID: [-1] [ESB] [2017-09-21 14:30:37,785] DEBUG {org.apache.synapse.transport.http.wire} - << "Connection: K 

Répondre

0

Ce fut un bogue dans ESB 4.9.0 [1]. Cela pourrait avoir corrigé dans les versions ultérieures.

S'il vous plaît vérifier si la propriété ci-dessous est disponible dans "/repository/conf/passthru-http.properties"

http.headers.preserve = Content-Type

(Notez que vous pouvez ajouter plusieurs valeurs d'en-tête en tant que liste séparée par des virgules)

Btw utilise la propriété "messageType" pour définir le type de contenu. S'il vous plaît se référer au document sur messageType et ContentType de [2]

[1] https://wso2.org/jira/browse/ESBJAVA-4620

[2] https://docs.wso2.com/display/ESB500/Generic+Properties#GenericProperties-messageType