我有一个xy[1]=2
由Mule中的两个composite-source
组成;
我希望在收到来自这些侦听器的请求后,根据每个侦听器设置变量;
但在mule 3.6.0中部署时出现此错误:
http:listener
我该怎么办?
这是我的代码:
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.
P.S。我用<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>
答案 0 :(得分:2)
将set-session-variable
放在那里是违法的:Mule架构不允许它。
原因是http:listener
不是常规endpoint
,就像http:inbound-endpoint
一样,因此不支持这种嵌套,就像所有其他端点一样。
这是不幸的,希望最终得到解决的事情。与此同时,您需要找到另一种方法来区分这两个听众之间的请求。
为此,我建议您检查他们创建的所有入站消息属性,寻找差异化因素。我希望MULE_
属性可以在这里使用,但您必须使用您正在使用的特定HTTP_Listener
配置检查您的特定上下文。