http - Mule - HTTP Post - 超过超时

标签 http post timeout mule httprequest

这是我的基本骡子流程:

HTTP 监听器 > Logger > Http Request > Logger(结果消息)

<http:request-config name="HTTP_Request_Configuration" host="localhost" port="8080" doc:name="HTTP Request Configuration" usePersistentConnections="false"/>
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="servoy-restFlow">
    <http:listener config-ref="HTTP_Listener_Configuration"
        path="/" doc:name="HTTP" />
    <logger message="#[message.payloadAs(java.lang.String)]" level="INFO"
        doc:name="Logger" />
    <http:request config-ref="HTTP_Request_Configuration"
        path="service/rest/request" method="POST"
        doc:name="HTTP" />
    <logger message="#[message.payloadAs(java.lang.String)]" level="INFO"
        doc:name="Logger" />
</flow>

但是它返回一个关于超时异常的错误:

********************************************************************************
Exception stack is:
1. Timeout exceeded (java.util.concurrent.TimeoutException)
  com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider:426 (null)
2. Error sending HTTP request. Message payload is of type: String (org.mule.api.MessagingException)
  org.mule.module.http.internal.request.DefaultHttpRequester:287 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
********************************************************************************
Root Exception stack trace:
java.util.concurrent.TimeoutException: Timeout exceeded
    at com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider.timeout(GrizzlyAsyncHttpProvider.java:426)
    at com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider$3.onTimeout(GrizzlyAsyncHttpProvider.java:274)
    at org.glassfish.grizzly.utils.IdleTimeoutFilter$DefaultWorker.doWork(IdleTimeoutFilter.java:398)
    at org.glassfish.grizzly.utils.IdleTimeoutFilter$DefaultWorker.doWork(IdleTimeoutFilter.java:377)
    at org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.run(DelayedExecutor.java:158)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

********************************************************************************

我应该怎么做才能避免超时?

最佳答案

http outbound request默认超时是 30 秒,在 mule 中以 ms 指定。将 http-request 配置的超时时间增加到大于 30 秒,可以从 40 秒开始,看看你想要的数字是多少。

<http:request-config responseTimeout="40000" .../>

关于http - Mule - HTTP Post - 超过超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35958996/

相关文章:

php - GET 和 POST 在同一个页面上?

json - 将对象转换为 JSON 字符串以用于 POST 请求

Java Telegram API RpcCall 超时

delphi - 用Delphi实现读取文件时的超时

android - 如何在 Android 测试中正确模拟 HttpGet 调用

php - EAN API 在酒店信息页面上未提供正确的货币

python - 处理 POST 请求 Flask

javascript - 超时工作

javascript - 混合内容错误 (Http/Https)

php - 使用 PHP 的 Http 空响应