【问题标题】:Spring Integration Java DSL: The Http.outboundGateway with the HttpMethod.PATCH is not workingSpring Integration Java DSL:带有 HttpMethod.PATCH 的 Http.outboundGateway 不起作用
【发布时间】:2018-11-21 13:05:08
【问题描述】:

当 Spring Integration 使用 HttpMethod.PATCH 操作调用 Http.outboundGateway 时,会出现异常:

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 方法。处理这种情况的最佳方法是什么?

【问题讨论】:

    标签: spring-integration spring-integration-dsl


    【解决方案1】:

    RestTemplate 默认使用基于 Java HttpURLConnectionSimpleClientHttpRequestFactory。考虑使用其他一些ClientHttpRequestFactory,例如HttpComponentsClientHttpRequestFactory。当你声明这样一个bean时,你可以将它注入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) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 2015-01-29
      • 2016-06-10
      • 2015-11-30
      相关资源
      最近更新 更多