我在尝试将Spring组件添加到Mule Flow时收到错误消息。这应该是一个常见的用户案例,但我无法找到正确的文档或示例。提前谢谢。
以下是原始配置并且工作正常:
<flow name="ApplicationEndpoint">
<inbound-endpoint address="server:port/JSONAPI/"/>
<jersey:resources>
<component>
<spring-object bean="myJerseyService"/>
</component>
</jersey:resources>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<flow-ref name="ErrorHandling" doc:name="Flow Reference"/>
</catch-exception-strategy>
</flow>
我只是想添加一个新组件来进行一些后期处理。当我尝试这个时,它不起作用:
<flow name="ApplicationEndpoint">
<inbound-endpoint address="server:port/JSONAPI/"/>
<jersey:resources>
<component>
<spring-object bean="myJerseyService"/>
</component>
</jersey:resources>
<component>
<spring-object bean="postProcessor"/>
<component>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<flow-ref name="ErrorHandling" doc:name="Flow Reference"/>
</catch-exception-strategy>
</flow>
其中“postProcessor”将配置中的其他位置映射为spring bean。
我得到的错误信息是:
org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:从元素'component'开始发现无效内容。其中一个'{“http://www.mulesoft.org/schema/mule/core”:abstract-lifecycle-adapter-factory,“http://www.mulesoft.org/schema/mule/core”:binding}'是预期的。
答案 0 :(得分:1)
上述错误清楚地表明标签<component>
未关闭..
<component>
<spring-object bean="postProcessor"/>
</component>
您需要结束以下标记: - </component>
还有一件事......我尝试运行您的代码,但由于server:port/JSONAPI/
地址中配置了inbound-endpoint
,因此出现错误,指出xml格式错误
所以我修改了你的代码并成功运行: -
<flow name="ApplicationEndpoint">
<inbound-endpoint address="http://localhost:8189/JSONAPI"/>
<jersey:resources>
<component>
<spring-object bean="myJerseyService"/>
</component>
</jersey:resources>
<component>
<spring-object bean="postProcessor"/>
</component>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<flow-ref name="ErrorHandling" doc:name="Flow Reference"/>
</catch-exception-strategy>
</flow>
因此,您现在可以使用它并根据您的要求进行修改