我有一个非常简单的流程如下:
QUEUE ---> DATAMAPPER----> Consume Service(HTTP) ---> Logger( #[payload], #[message.inboundPropeties.['http.status']].
队列将有多条消息。一旦我启动了mule服务器,前几条消息就会得到一个成功的响应(状态码200)。
毕竟,我通过'statusCode''400'获得了以下错误。有没有人知道如何解决问题
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Size of a request header field exceeds server limit.<br />
<pre>
X-MULE_SESSION
</pre>
</p>
</body></html>
我已经提到了这个网址:Bad Request, Your browser sent a request that this server could not understand。我相信必须删除一些cookie。我不知道我怎么能从Mule结束。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:3)
看起来您的会话太大而无法作为http标头发送。如果你真的需要传播你的会话,你需要把它缩小(如果你有一些东西非常通过用gzip压缩它?)。或者设置以下连接器配置:
<http:connector name="sessionlessConnector">
<service-overrides sessionHandler="org.mule.session.NullSessionHandler"/>
</http:connector>
或删除禁用内部变换器的属性,如下所述:
http://forum.mulesoft.org/mulesoft/topics/how_to_remove_the_mule_session_header_from_a_http_request
答案 1 :(得分:0)
我已经提到了这个网址。它工作正常。 http://forum.mulesoft.org/mulesoft/topics/how_to_remove_the_mule_session_header_from_a_http_request
<http:connector name="NoSessionConnector">
<service-overrides
sessionHandler="org.mule.session.NullSessionHandler"/>
</http:connector>
需要在HTTP otbound中引用上述连接器
<http:outbound-endpoint exchange-pattern="request-response" method="POST" keepAlive="true" doc:name="HTTP" address="..." connector-ref="NoSessionConnector">
<set-property propertyName="Content-Type" value="application/xml"/>
</http:outbound-endpoint>
谢谢@Victor帮我解决了这个问题。