我们的Mule应用程序对服务进行出站https调用。我们仅在某些请求中遇到错误,
“您的浏览器发送了此服务器无法理解的请求。请求标头字段的大小超出服务器限制“
从错误消息中我们似乎更多地在标题中发送更多数据。
我搜索了这个问题并找到了一个相关的帖子,它说在出站呼叫之前删除了MULE_SESSION标头。以下是链接,类似帖子也在SO上,
http://forum.mulesoft.org/mulesoft/topics/how_to_remove_the_mule_session_header_from_a_http_request
我尝试使用Message转换器删除标题,但它对我不起作用,
<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>
有趣的是,我在对两个不同消息进行Https出站调用之前对MULE_SESSION标头进行了比较,一个正在工作而另一个正在工作,发现它们具有相同的长度,因此不确定问题是否与此相关报头中。
你能否就这个问题提出任何建议?
任何帮助都将不胜感激。
答案 0 :(得分:0)
道歉发布错误,我在下面的意思(NullSessionHandler)不适用于https是我的mule应用程序在添加后无法启动,它给了我解析异常。
再次检查问题时,问题似乎与Https连接器中的标记顺序有关,因此服务覆盖标记应该是连接器中的最后一个标记。 (我认为这应该在mule-module-spring-config.jar中的mule架构中定义,但是还没有检查过)
无论如何,感谢您的帮助,现在正在努力。