我在Mule Community 3.8应用程序中定义了以下流:
<flow name="post:/api/v1:application/json:api-v1-config">
<set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
<expression-component>
payload = app.registry['RestServiceBean_2.10'].postApiCall(
payload,
message);
</expression-component>
</flow>在同一个文件中,HTTP 415的映射
<apikit:mapping statusCode="415">
<apikit:exception value="org.mule.module.apikit.exception.UnsupportedMediaTypeException" />
<set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
<set-payload value="{ "message": "Unsupported media type" }" doc:name="Unsupported media type"/>
</apikit:mapping>现在,当我用Content-Type: application/xml向那个端点发送请求时,我在日志中看到一个名为Flow not found for resource ...的异常,并接收一个HTTP500响应。
我遗漏了什么,在这种情况下,我必须在哪里告诉配置它应该返回HTTP 415呢?
发布于 2016-12-07 15:15:06
我发现我必须从流名中删除application/json::
<flow name="post:/api/v1:api-v1-config">
<set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>使用此配置,将引发正确的异常(HTTP 415)。
发布于 2016-12-01 10:57:27
如果您的项目不是基于RAML的,则需要创建一个单独的流来处理所有其他媒体类型,然后手动处理throw new org.mule.module.apikit.exception.UnsupportedMediaTypeException()
https://stackoverflow.com/questions/40800669
复制相似问题