Spring DS Java интеграции: Http.outboundGateway с HttpMethod.PATCH не работает - PullRequest
0 голосов
/ 21 ноября 2018

Когда Spring Integration выполняет вызов Http.outboundGateway с операцией HttpMethod.PATCH, возникает исключение:

Caused by: java.net.ProtocolException: Invalid HTTP method: PATCH
at java.base/java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:487)
at java.base/sun.net.www.protocol.http.HttpURLConnection.setRequestMethod(HttpURLConnection.java:569)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.setRequestMethod(HttpsURLConnectionImpl.java:365)
at org.springframework.http.client.SimpleClientHttpRequestFactory.prepareConnection(SimpleClientHttpRequestFactory.java:226)
at org.springframework.http.client.SimpleClientHttpRequestFactory.createRequest(SimpleClientHttpRequestFactory.java:146)
at org.springframework.http.client.support.HttpAccessor.createRequest(HttpAccessor.java:87)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:719)

Это проблема в классе Java HttpURLConnection, поскольку она неподдерживать операцию PATCH.

Я должен использовать метод PATCH.Каковы наилучшие способы справиться с этой ситуацией?

1 Ответ

0 голосов
/ 21 ноября 2018

RestTemplate по умолчанию использует SimpleClientHttpRequestFactory на основе Java HttpURLConnection.Попробуйте использовать другие ClientHttpRequestFactory, например HttpComponentsClientHttpRequestFactory.Когда вы объявляете такой боб, вы можете добавить его в Http.outboundGateway().requestFactory():

/**
 * Set the {@link ClientHttpRequestFactory} for the underlying {@link RestTemplate}.
 * @param requestFactory The request factory.
 * @return the spec
 */
public HttpMessageHandlerSpec requestFactory(ClientHttpRequestFactory requestFactory) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...