当前位置: 首页 > 知识库问答 >
问题:

JavaDSL的Spring集成:带有HttpMethod的Http.outbound网关。补丁不工作

幸越泽
2023-03-14

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

共有1个答案

屠锐
2023-03-14

RestTemboard默认使用基于JavaHttpURLConnectionSimpleClientHttpRequest estFactory。考虑使用其他一些ClientHttpRequest estFactory,例如HttpComponentsClientHttpRequest estFactory。当您声明这样的bean时,您可以将其注入到Http.outboundGateway(). Request estFactory()中:

/**
 * Set the {@link ClientHttpRequestFactory} for the underlying {@link RestTemplate}.
 * @param requestFactory The request factory.
 * @return the spec
 */
public HttpMessageHandlerSpec requestFactory(ClientHttpRequestFactory requestFactory) {
 类似资料:
  • 下面是配置了标头的出站http网关,但在添加轮询器时不会连续触发。它只会被触发一次,然后停止。

  • # 给ISO离线集成补丁 大家是否厌倦了每次安装补丁后又要打一堆补丁的感觉?使用微软的Dism打补丁又需要自己收集补丁,而且每个月有新补丁,还有老补丁被取代。现在Dism++重建了Windows Update,直接从WSUS服务器中导出补丁数据库,全自动获取最新更新,自动剔除过期老补丁,在通过CBS判断系统是否需要此更新。下面来看看怎么使用吧。 解压ISO 为了处理ISO里面的install.w

  • 当我尝试点击具有方法的请求时,我收到以下错误:PATCH 使用JMeter版本:-apache-JMeter-5.4.1 如果我能得到专家的帮助来解决他们的问题,那将会很有帮助。 谢谢

  • 我正在尝试使用Spring Integration int-http:inbound-gateway测试Inbound http gatway: 我的Web.xml: 使用RestTemplate,我试图向网关发出POST请求: 那个 我总是得到没有找到404,你能给我一些提示吗? 非常感谢!

  • 当msg处理抛出异常时,如何有效地支持JMS重新交付? 我有一个使用JMS(ActiveMQ)的流,它具有配置为允许n次重新传递尝试的连接工厂。 我希望在处理msg时出现任何错误,导致msg在connectionFactory配置允许的情况下被放回重新交付,然后在最大重新交付尝试用尽时,交付给DLQ。与AMQ保持一致。 对一个相关SO问题的回答意味着我可能会有一个重新抛出的错误通道,它应该触发重新

  • 在spring integration (Java DSL)中,如何定义一个完整流程的事务? 通过Spring集成,我们可以定义一个示例流程: 我需要一个跨度整个流程的交易。目前,当我使用“aMessage转换器”访问数据库时,事务将在处理完此消息转换器后关闭。但是我需要一个在处理“另一个消息转换器”时仍未提交的事务? 我希望只需添加一个“@Transactional”(或@Transaction