Mule-如何在http:listener中使用set会话变量?
我在Mule中有一个由两个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
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所花费的时间相比。不要基于潜在的性能问题而决定反对这种方法:尝试对其进行负载测试,以了解其真实性。