【问题标题】:Mule : Issue in Outbound HTTPS callMule:出站 HTTPS 调用中的问题
【发布时间】:2014-06-06 08:55:13
【问题描述】:

我们的 Mule 应用程序对服务进行出站 https 调用。我们仅在某些请求下得到以下错误,

“您的浏览器发送了一个此服务器无法理解的请求。请求标头字段的大小超出服务器限制”

从错误消息看来,我们更多的是在标头中发送更多数据。

我搜索了该问题并找到了一个相关帖子,其中说要在出站呼叫之前删除 MULE_SESSION 标头。下面是链接,SO上也有类似的帖子,

http://forum.mulesoft.org/mulesoft/topics/how_to_remove_the_mule_session_header_from_a_http_request

我尝试使用消息转换器删除标题,但它不适合我,

<message-properties-transformer doc:name="HTTPMuleSessionStripper">
    <delete-message-property key="#[header:outbound:MULE_SESSION]" />
    <delete-message-property key="MULE_SESSION" />
</message-properties-transformer>

另外,当我尝试帖子中提到的其他方式时,即指定 Null 会话连接时,它不适用于 https 连接器,或者可能有另一种我不知道的方式。

下面不起作用,

<https:connector name="NoSessionConnector">
      <service-overrides sessionHandler="org.mule.session.NullSessionHandler"/>
</https:connector>

有趣的是,我比较了 MULE_SESSION 标头,在它对两条不同的消息进行 Https 出站调用之前,一条有效,一条无效,发现它们的长度相同,所以不确定问题是否与此有关标题。

您能否就该问题提出任何建议?

任何帮助将不胜感激。

【问题讨论】:

  • 我怀疑HTTPMuleSessionStripper 是否真的有效。使用org.mule.session.NullSessionHandler 是防止会话成为序列化程序的方法。 Mule 可能仍会添加标题,但它将为空。将 Mule 指向您控制的另一个 HTTPS(或 HTTP)端点,并检查您收到的标头的确切状态。

标签: https mule


【解决方案1】:

抱歉发布不正确,我在下面的意思(NullSessionHandler)不适用于 https 是我的骡子应用程序在添加后无法启动,它给了我解析异常。

再次检查问题时,问题似乎与 Https 连接器中的标签顺序有关,因此服务覆盖标签应该是连接器中的最后一个标签。 (我认为这应该在 mule-module-spring-config.jar 中的 mule 模式中定义,但尚未检查)

无论如何,谢谢你的帮助,它现在可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-29
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多