【问题标题】:How to make HTTPS request from mule ESB?如何从 mule ESB 发出 HTTPS 请求?
【发布时间】:2019-08-02 21:49:42
【问题描述】:

如何在没有来自 HTTP 组件的端口的情况下发出 HTTPS 请求?我不能将 url 与端口 443 或 80 一起使用,因为端口号只是附加了 url 并且它说无效的 url。 那么如何只使用 URL 而不是输入端口号来发出请求呢?

另外,如果我有 IP 地址,我可以使用 IP + 端口来访问数据。但是服务器运行在代理服务器后面,所以无法找到应用服务器的 IP。

错误信息:

消息:向https://xxx-yyy.com:443/rest/name 发送 HTTP 请求时出错 有效载荷:{NullPayload}

负载类型:org.mule.transport.NullPayload

根异常堆栈跟踪: java.util.NoSuchElementException 在 java.util.Collections$EmptyIterator.next(未知来源) 在 com.mulesoft.mule.http.request.NameResolvingRequestBuilder.nextResolvedAddresses(NameResolvingRequestBuilder.java:99) 在 com.mulesoft.mule.http.request.NameResolvingRequestBuilder.setUrl(NameResolvingRequestBuilder.java:75) 在 org.mule.module.http.internal.request.grizzly.GrizzlyHttpClient.createGrizzlyRequest(GrizzlyHttpClient.java:555) 在 org.mule.module.http.internal.request.grizzly.GrizzlyHttpClient.sendAndWait(GrizzlyHttpClient.java:355) 在 org.mule.module.http.internal.request.grizzly.GrizzlyHttpClient.send(GrizzlyHttpClient.java:303) 在 com.mulesoft.mule.http.request.grizzly.EEGrizzlyHttpClient.send(EEGrizzlyHttpClient.java:105) 在 org.mule.module.http.internal.request.DefaultHttpRequester.innerProcess(DefaultHttpRequester.java:383) 在 org.mule.module.http.internal.request.DefaultHttpRequester.processBlocking(DefaultHttpRequester.java:226)

请指教。

【问题讨论】:

  • 您必须指定端口。如果 URL 中未提及明确的端口,则使用 443 是 HTTPS 的约定。你必须更好地描述这个问题。你遇到了什么错误?

标签: mule mule-studio mule-component mule-esb mulesoft


【解决方案1】:

错误表示找不到主机名。鉴于主机名是由组成的,这应该是可以预料的。你可以在这篇知识库文章中找到这个错误:https://support.mulesoft.com/s/article/Error-sending-HTTP-request-with-java-util-NoSuchElementException

此错误与 HTTPS 或使用的端口无关。

我已经仔细检查了主机名确实没有在 nslookup 中注册:

c:\>nslookup xxx-yyy.com
Server:  UnKnown
Address:  192.168.0.1

Non-authoritative answer:
Name:    xxx-yyy.com
Address:  121.14.27.78

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多