2017-09-21 6 views
0

머리글에 "Content-Type : application/json"을 허용하지만 ESB에서 호출하려고하면 휴식 서비스를 호출해야합니다. WSO2는 "charset = utf-8"을 자동으로 추가합니다. 제거하는 방법을 모르겠습니다.WSO2에서 charset = utf-8을 제거하는 방법 ESB

나는 또한 ContentType 속성을 사용했지만 행운은 없습니다.

 <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> 

로그 :

- 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 

답변

0

이 ESB 4.9.0 버그이었다 [1]. 이것은 이후 버전에서 수정되었을 수 있습니다.

속성이 "/repository/conf/passthru-http.properties"에서 사용할 수 아래 여부를 확인하시기 바랍니다

http.headers.preserve = Content-Type을

(여러 헤더 값을 추가 할 수 있습니다 쉼표로 구분 된 목록으로)

Btw는 "messageType"속성을 사용하여 콘텐츠 유형을 설정합니다. [2]

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

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

발은 messageType에 문서와 ContentType을 참조 해주세요