我已将Mule HTTP入站端点定义为:
<flow name="jfeed_fill_data">
<http:inbound-endpoint address="http://localhost:1212/jcore/insert/feed/">
</http:inbound-endpoint>
<component class="main.java.com.joshlabs.jcore.Feed"/>
</flow>
现在这项服务工作正常。
但是当我输入一个变形的URL,比如 “http:// localhost:1212 / jcore / insert / feedasdasdAwes /” 时,我收到以下消息MULE:
Cannot bind to address "http://localhost:1212/jcore/insert/feedasdasdAwes/"
No component registered on that endpoint
我的问题是:如何将上述默认消息更改为我自己的消息。
注意:实际上我想将JSON字符串作为错误消息返回。类似的东西:
{
Exception: "Invalid URL"
}
如果可能,那么“可以MULE抛出 HTTP 404:未找到错误在上述情况下”.. ??
答案 0 :(得分:2)
您只需要让端点接受所有子路径,然后使用消息路由处理错误的路径:
<flow name="jfeed_fill_data">
<http:inbound-endpoint address="http://localhost:1212" />
<choice>
<when evaluator="header" expression="INBOUND:http.request.path=/jcore/insert/feed/">
<component class="main.java.com.joshlabs.jcore.Feed"/>
</when>
<otherwise>
<message-properties-transformer>
<add-message-property key="http.status" value="404"/>
</message-properties-transformer>
<expression-transformer>
<return-argument evaluator="string" expression="{Exception: "Invalid URL"}"/>
</expression-transformer>
</otherwise>
</choice>
</flow>