我被分配到使用Mule 2的旧系统上工作,我在一些旧配置中发现了一些怪癖。最初编写文档的开发人员已经改变了工作,因此没有人敢改变任何事情。
<service name="taskCompleted">
<inbound>
<jms:inbound-endpoint topic="namespace.transporttask.completed">
<jms:jmsmessage-to-object-transformer />
<!-- This section does not comply with Mule's XML schema
(Element message-properties-transformer is not allowed here) -->
<message-properties-transformer>
<add-message-property key="MULE_ENCODING" value="windows-1252" />
</message-properties-transformer>
</jms:inbound-endpoint>
</inbound>
<bridge-component />
<outbound>
...
</outbound>
</service>
这只是我发现的一个例子,我的假设是Mule只是忽略了这样的配置,并且删除它是安全的,因为它可能没有做任何事情。这个假设是否正确?
答案 0 :(得分:3)
Mule严格验证它加载的配置:如果元素放错位置或根本不允许,Mule将不会加载配置并拒绝启动此应用程序。
如果Mule使用此配置启动正常,则表示它有效并且评论在说谎。
答案 1 :(得分:2)
虽然IntelliJ IDEA具有最佳的基于XML架构的IDE编辑,但它仍然不是理想的。根据经验,Mule将在解析配置时进行完全验证。但是,IDE可能会错误地将有效配置标记为错误。
并且,Mule 2.x已经很老了,David上面提到的更多适用于Mule 3。自Mule 2以来,主要的架构改进。