【问题标题】:Mule http request configuration proxyMule http请求配置代理
【发布时间】:2017-05-10 20:37:21
【问题描述】:

我正在学习 mulesoft (DataWeave Tutorial) 的教程,它实现了一个调用外部公共 Web 服务 (WSDL) 的 Web 服务使用者。我按照描述设置项目没有问题,但是当我启动服务器时出现以下错误:“原因:java.net.ConnectException:连接被拒绝:连接”。

首先想到的是网络服务不可用。但我在 SoapUI 中对其进行了测试,效果很好。

我想这个错误是因为对 Web 服务的调用没有使用我在 Anypoint Studio 中设置的代理配置。因此,在我的 Web 服务使用者中,我设置了一个 HTTP 请求配置,并在其中添加了一个代理配置。但它也没有奏效。这些是我的步骤:

网络服务消费者

https://i.stack.imgur.com/hN584.png

参考标签

https://i.stack.imgur.com/NIV84.png

HTTP 请求配置

https://i.stack.imgur.com/Ubpwa.png

代理选项卡

https://i.stack.imgur.com/bBYx1.png

代理配置

https://i.stack.imgur.com/JDQdf.png

立即引起注意的一件事是 HTTP 请求配置上的 TLS 错误。只要我选择使用代理,当我转到 TLS/SSL 选项卡时,就会出现此错误,如下图所示,我没有删除 TLS 配置的选项:

TLS/SSL 选项卡

https://i.stack.imgur.com/xFqEW.png

这是我的流程的 XML:

    <flow name="dataweave_tutorialFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="ex1" doc:name="HTTP" metadata:id="b34a6c34-653f-4b68-8aa3-8292e41a20cf"/>
    <dw:transform-message doc:name="Transform Message">
        <dw:input-payload doc:sample="C:\temp\dw_example1.json"/>
        <dw:set-payload><![CDATA[%dw 1.0
        %output application/xml
        %namespace ns0 http://mulesoft.org/tshirt-service
        ---
        {
            ns0#OrderTshirt: {
                size: "M" unless payload.buyer.state == "TX" otherwise "XXL",
                email: payload.buyer.email,
                name: payload.buyer.name,
                address1: payload.buyer.address,
                address2: null,
                city: payload.buyer.city,
                stateOrProvince: payload.buyer.state,
                postalCode: payload.buyer.postCode,
                country: payload.buyer.nationality
            }
        }]]></dw:set-payload>
    </dw:transform-message>
    <ws:consumer config-ref="Web_Service_Tshirt" operation="OrderTshirt" doc:name="Web Service Consumer"/>
</flow>

我将 Anypoint Studio 6.2.5 与 Mule ESB Server 3.8.2 一起使用。

我不知道要进行哪些更改才能使这项工作正常进行。希望有人对此有一些好的建议。提前致谢!

【问题讨论】:

  • 刚刚注意到我忘记在流之前放置 XML 的一些重要部分,但这些配置在我发布的图像上可用。
  • 请用完整配置更新我们的问题...您的代理配置不可见
  • 配置在此image 上可见配置如下: 代理配置名称:XXXXX_PROXY_CONFIG 主机:proxywbs.int.XXXXX.com 端口:8080
  • 而且我公司的代理配置是正确的,我在其他很多地方都使用过。

标签: web-services mule http-proxy anypoint-studio


【解决方案1】:

您不需要在代理 url 中提及 http 主机可以使用以下示例设置代理:-

<http:request-config name="HTTP_Request_Configuration" host="www.webservicex.com" port="80" doc:name="HTTP Request Configuration">
     <http:proxy host="my.example.proxy.com" port="8080"/>
</http:request-config>

您可能需要根据您的代理提供代理用户名和密码。
一个最好的例子是,如果你一步一步地按照这里写的:-
http://www.corralict.nl/wsc-connector-proxy/

https://docs.mulesoft.com/mule-user-guide/v/3.8/web-service-consumer

关于tls,请勿触摸tls 部分,并确保您的HTTP 请求协议设置为HTTP 而不是HTTPS。您看到的错误是工作室中的 错误,如果您正确配置,不会影响。

【讨论】:

  • 感谢您的回复。我已经尝试过在代理主机上使用和不使用 http 并没有区别,我仍然无法使其工作。而且我不需要在我的代理服务器、主机和端口上进行身份验证,这一切都需要。您发送的第一个链接是完美的,它准确地解释了我在做什么。我在我的 Anypoint Studio 上试用了这个示例,但我又遇到了同样的问题。看来我的配置做得恰到好处,我想知道它是否不会是我正在使用的任何版本的错误......
  • 如果有这种感觉,请在此处提出 jira 票 mulesoft.org/jira/projects/MULE/issues