【问题标题】:Only one cookie available in response from Mule HTTP operation-based Connector只有一个 cookie 可用于响应 Mule 基于 HTTP 操作的连接器
【发布时间】:2015-09-22 09:09:32
【问题描述】:

我正在尝试让在 Mule 3.4 中制作的项目在 Mule 3.7 中运行。在 Mule 3.4 中,使用基于 HTTP 端点的连接器,可以通过以下方式从响应消息中检索多个 cookie:

 Object cookieObj = message.getInboundProperty("Set-Cookie");
    String cookieValSchoolname = CookieHelper.getCookieValueFromCookies (cookieObj, "schoolname");
    String cookieValJSessionId = CookieHelper.getCookieValueFromCookies(cookieObj, "JSESSIONID");

在 Mule 3.4 中,使用基于 HTTP 端点的连接器,入站属性“Set-Cookie”包含在 http 标头中使用 Set-Cookie 设置的所有 cookie 的数组。

但是,当我对新的基于 HTTP 操作的连接器使用相同的代码时,入站属性“Set-Cookie”只包含第一个 cookie,而不是包含所有 cookie 的数组。

谁能告诉我如何使用新的 HTTP 连接器访问所有 cookie? 也许有一种方法可以检索原始 http 标头并对其进行解析?

消息具有的唯一其他入站属性是内容长度、http.reason、http.status、内容类型、服务器和日期。

【问题讨论】:

    标签: http cookies mule setcookie


    【解决方案1】:

    这是bug。您可以在那里查看修复版本。很遗憾,想不出任何解决方法。

    【讨论】:

    • 感谢您的回答。所以我应该升级到Mule 3.7.2。我应该手动下载吗?因为在 Anypoint Studio 中,我可以下载的最后一个 Mule ESB Server Runtime 是 3.7.1。
    • 我认为这取决于您的 Studio 版本,我可以在 Anypoint Studio 更新站点 (studio.mulesoft.org/r4/updates) 下看到它。
    • 目前看不到。我使用 Anypoint Studio 5.3.0,构建 ID 为:201509170844。我现在正在从 Salesforce 客户门户下载“包含 3.7.2-EE 运行时的 Studio”。
    • 使用 3.7.2-EE 运行时 message.getInboundProperty("set-cookie");确实返回一个带有 cookie 的 ArrayList。
    • 不幸的是,现在 CookieHelper.getCookieValueFromCookies 函数不再起作用了。我收到错误:无效的 cookiesObject。仅支持类 org.apache.commons.httpclient.Cookie[] 和接口 java.util.Map。这也是bug吗?
    【解决方案2】:

    就 Anypoint studio 而言,mulesoft 博客称“Anypoint Studio 5.3 和 Mule 3.7.2 已发布!”。如果可能,请下载该文件,并让我们知道问题是否已解决。它也可能对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      相关资源
      最近更新 更多