Mule-如何在http:listener中使用set会话变量?

Mule-如何在http:listener中使用set会话变量?,mule,session-variables,mule-studio,httplistener,mule-component,Mule,Session Variables,Mule Studio,Httplistener,Mule Component,我在Mule中有一个由两个http:listener组成的复合源代码 我想在收到来自这些侦听器的请求后,基于每个侦听器设置一个变量 但在mule 3.6.0中部署时会发生此错误: org.mule.module.launcher.DeploymentInitException: SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'set-session-variab

我在Mule中有一个由两个
http:listener
组成的
复合源代码

我想在收到来自这些侦听器的请求后,基于每个侦听器设置一个变量

但在mule 3.6.0中部署时会发生此错误:

org.mule.module.launcher.DeploymentInitException: SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'set-session-variable'. One of '{"http://www.mulesoft.org/schema/mule/core":annotations, "http://www.mulesoft.org/schema/mule/http":response-builder, "http://www.mulesoft.org/schema/mule/http":error-response-builder}' is expected.
我该怎么办

这是我的密码:

<composite-source doc:name="Composite Source">
  <http:listener config-ref="HTTP_Listener_Configuration_Source1"
    path="/" doc:name="HTTP">
        <set-session-variable doc:name="Session Variable" value="#[x]" variableName="x" />
  </http:listener>
  <http:listener config-ref="HTTP_Listener_Configuration_Source2"
                path="/" doc:name="HTTP">
        <set-session-variable doc:name="Session Variable" value="#[y]" variableName="x" />
  </http:listener>
</composite-source>


另外,我已经用http:inbound endpoint做了这件事,在那里放置
set会话变量是非法的:Mule模式不允许这样做

原因是
http:listener
不像
http:inbound endpoint
那样是常规的
endpoint
,因此不像所有其他端点那样支持这种嵌套

这是不幸的,希望最终能得到解决。同时,您需要找到另一种方法来区分这两个侦听器之间的请求


为此,我建议您检查他们创建的所有入站邮件属性,以寻找区别点。我希望
MULE\u
属性在这里可用,但您必须在特定的上下文中检查您正在使用的特定
HTTP\u侦听器
配置。

OOC如果您有单个
HTTP:Listener
不在
复合源
中,它是否有效?不,错误仍然发生,我有什么遗漏吗?谢谢你,你的评论总是很有帮助的。但在这种情况下,我想根据请求路径设置其他变量,以便路由请求,等等,因此,设置“MULE_”属性并区分它们并不能解决这里的问题。此外,与“设置会话变量”相比,我认为set和check属性可能会影响性能。我不是建议设置
MULE\uuu
属性,而是阅读它们以找到其中的判别式:您可以根据此判别式自由计算自定义值,然后
设置会话变量
它。我确实认为读取/设置属性会对性能产生重大影响,尤其是与执行I/O所花费的时间相比。不要基于潜在的性能问题而决定反对这种方法:尝试对其进行负载测试,以了解其真实性。