私たちは、このプロジェクトでSpring-Integrationを使用しています。 http:outbound-gateway
で奇妙な問題が発生しています。休憩サービスを実行するには、次のヘッダーを渡す必要があります。 1)Accept=application/vnd.dsths.services-v1+xml
HTTP発信ゲートウェイがヘッダ値を操作しています
2)Content-Type=application/xml
奇妙な部分は、XML応答(Content-Type=application/vnd.dsths.services-v1+xml
)、返された応答は、devの環境では、常に一意ではないということですが、クライアント環境におけるながら返され、JSONレスポンス(Content-Type=application/vnd.dsths.services-v1+json
)があります戻ってきた。私はDEBUG
をオンにしてログファイルを確認し、org.springframework.web.client.RestTemplate
が[text/plain、application/json、application/* + json、*/`*]にヘッダを受け入れるように設定していることがわかりました。
2017-07-10 16:17:11,563 DEBUG [org.springframework.web.client.RestTemplate] (ajp-/10.226.55.163:8009-1) Setting request Accept header to [text/plain, application/json, application/*+json, */*]
私はクライアント環境で
accept=application/vnd.dsths.services-v1+xml
に
accept=*/*
の値をオーバーライドすることによって、この問題を克服することができる(このヘッダは、実際の「
Accept
」ヘッダーではないことに注意してください)でした。
ここでの質問は、http:outbound-gateway
が異常な動作をしてヘッダー値を操作する理由です。 Spring Integrationがヘッダと"accept"
と"Accept"
の違いを識別できないのはなぜですか?私の修正は正しいですか?
大丈夫です。説明ありがとう。 MessageBuilder.removeHeader( "accept")はSpringフレームワークが正しいヘッダ 'Accept'を認識できるように動作するはずです。それは意味をなさないか、他の問題を予見していますか? –
???あなたは完全に私を理解していない。私はいくつかのヘッダーを削除について話しますか?私は、「受け入れる」ための価値観とその克服方法を説明します。 Spring Integrationの 'Accept'ヘッダーは効果がなく、' RestTemplate'でオーバーライドされます。 –