Mule - 如何在 http:listener 中使用 set-session-variable?
Mule - How can I use set-session-variable in http:listener?
我有一个 composite-source
由 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>
P.S。我用 http:inbound-endpoint
完成了
在那里放置 set-session-variable
是非法的:Mule 模式不允许它。
原因是 http:listener
不是常规的 endpoint
,就像 http:inbound-endpoint
一样,因此不支持这种嵌套,就像所有其他端点一样。
这很不幸,希望最终会得到修复。与此同时,您需要找到另一种方法来区分来自这两个侦听器的请求。
为此,我建议您检查他们创建的所有入站消息属性,寻找差异化因素。我期待 MULE_
属性 在这里可用,但您必须检查您的特定上下文,以及您正在使用的特定 HTTP_Listener
配置。
我有一个 composite-source
由 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>
P.S。我用 http:inbound-endpoint
在那里放置 set-session-variable
是非法的:Mule 模式不允许它。
原因是 http:listener
不是常规的 endpoint
,就像 http:inbound-endpoint
一样,因此不支持这种嵌套,就像所有其他端点一样。
这很不幸,希望最终会得到修复。与此同时,您需要找到另一种方法来区分来自这两个侦听器的请求。
为此,我建议您检查他们创建的所有入站消息属性,寻找差异化因素。我期待 MULE_
属性 在这里可用,但您必须检查您的特定上下文,以及您正在使用的特定 HTTP_Listener
配置。