0

我有一个非常简单的流程如下:

 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 an request that this server could not understand。我认为必须删除一些 cookie。我不确定如何从 Mule 端做。

任何帮助将不胜感激。提前致谢。

4

2 回答 2

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

于 2015-01-12T12:39:56.037 回答
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 帮助我解决了这个问题。

于 2015-01-12T22:21:23.617 回答