&引用;“远程关闭”;当我尝试在Mule中使用HTTPS发送REST时

&引用;“远程关闭”;当我尝试在Mule中使用HTTPS发送REST时,mule,mule-studio,mule-component,Mule,Mule Studio,Mule Component,我有一个简单的REST HTTPS GET,它的uri如下: 这非常适合在浏览器、邮递员等环境中运行。使用Mule 3.8 HTTP,我从RAML Generated规范中选择uri,设置uri参数,但仍然得到一个异常: DEBUG 2016-06-28 16:38:35321[[svc0014_忠诚度].http.requester.ODP_Request_配置(1)SelectorRunner]com.ning.http.client.providers.grizzly.AsyncHtt

我有一个简单的REST HTTPS GET,它的uri如下:

这非常适合在浏览器、邮递员等环境中运行。使用Mule 3.8 HTTP,我从RAML Generated规范中选择uri,设置uri参数,但仍然得到一个异常:

DEBUG 2016-06-28 16:38:35321[[svc0014_忠诚度].http.requester.ODP_Request_配置(1)SelectorRunner]com.ning.http.client.providers.grizzly.AsyncHttpClientFilter:Request:HttpRequestPacket(
方法=获取
url=/nccpointshop/REST/giftcard/giftcard/list/currency/SEK
查询=null
协议=HTTP/1.1
内容长度=-1
标题=[
主机=正确。主机:443
用户代理=AHC/1.0
连接=保持活动状态
接受=*/*]
)
调试2016-06-28 16:38:35322[[svc0014_忠诚度].http.requester.ODP_请求_配置(1)SelectorRunner]org.mule.module.http.internal.HttpMessageLogger:requester
GET/nccpointshop/REST/giftcard/giftcard/list/currency/SEK HTTP/1.1
主持人:对。主持人:443
用户代理:AHC/1.0
连接:保持活力
接受:*/*
调试2016-06-28 16:38:35498[[svc0014_忠诚度].http.requester.ODP_Request_Configuration.worker(8)]com.ning.http.client.AsyncCompletionHandlerBase:远程关闭
java.io.IOException:远程关闭
调试2016-06-28 16:38:35520[[svc0014\u忠诚度].svc0014\u忠诚度-httpListenerConfig.worker.02]com.mulesoft.mule.debugger.server.DebuggerMuleNotificationHandlerImpl:MESSAGE\u PROCESSOR\u POST\u INVOKE->Path/get:\/giftcards:svc0014\u忠诚度y-config/processors/2
DEBUG 2016-06-28 16:38:37327[[svc0014_忠诚度].Mule.01]com.mulesoft.Mule.debugger.server.DebuggerMuleNotificationHandlerImpl:已收到通知2001 ef4625b0-3d3d-11e6-998f-448500a727fa
错误2016-06-28 16:38:37329[[svc0014_忠诚度].svc0014_忠诚度-httpListenerConfig.worker.02]org.mule.module.apikit.MappingExceptionListener:
********************************************************************************
消息:发送HTTP请求时出错。消息负载的类型为:NullPayload
类型:org.mule.api.MessaginException
代码:MULE_错误-29999
有效负载:{NullPayload}
JavaDoc:http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html
********************************************************************************
异常堆栈是:
1.远程关闭(java.io.IOException)
2.java.io.IOException:远程关闭(java.util.concurrent.ExecutionException)
org.glassfish.grizzly.impl.SafeFutureImpl$Sync:349(空)
3.java.util.concurrent.ExecutionException:java.io.IOException:远程关闭(java.io.IOException)
org.mule.module.http.internal.request.grizzly.GrizzlyHttpClient:245(空)
4.发送HTTP请求时出错。消息负载的类型为:NullPayload(org.mule.api.MessaginException)
org.mule.module.http.internal.request.DefaultHttpRequester:287(http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
********************************************************************************
根异常堆栈跟踪:
java.io.IOException:远程关闭

********************************************************************************
Mule HTTP connector的特点是,它总是将相关配置中的主机和端口作为头添加: 标题=[ 主机=正确。主机:443

有些系统不允许这样做,它们不接受添加端口(在我们的例子中,端口是在后端系统中动态分配的)。 因此,这项要求:

无效,但此项有效:

这是很难注意到和捕捉的,因为Postman和Chrome都会发送正确的请求。我建议使用其他工具,如SoapUI(我注意到它)。 但是,有一种方法可以覆盖标题中“主机”的值,如下所示:

    <http:request config-ref="HTTP_Request_Configuration1" path="/nccpointshop/REST/giftcard/giftcards/list/currency/SEK" method="GET" doc:name="Copy_of_HTTP">
        <http:request-builder>
            <http:header headerName="Host" value="correct.host"/>
        </http:request-builder>
    </http:request>


能否显示套接字配置详细信息以增加超时或KeepAlive=active?在使用RAML文件生成流后调用REST URL时,您表示存在问题。如果是这种情况,您的HTTPS连接器配置应显示类似于/api/v1/*的内容,因为它对所有流都是通用的。指向y的路径我们使用{currency}URI参数获取货币对我来说没有意义。您是否使用RAML文件生成流?如果是,请向我们显示获取货币部分的RAML部分。您可以共享HTTPS\u请求\u配置吗?好的,下面是HTTPS\u请求\u配置: