Mule APIkit:"Flow not found" 而不是 HTTP 415 不受支持的媒体类型
Mule APIkit: "Flow not found" instead of HTTP 415 unsupported media type
我在 Mule Community Edition 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 ...
的异常并收到 HTTP 500 响应。
我错过了什么,在这种情况下我必须在哪里告诉配置它应该 return HTTP 415?
如果您的项目不是基于 RAML 的,您将需要创建一个单独的流程来处理所有其他媒体类型,然后手动 throw new org.mule.module.apikit.exception.UnsupportedMediaTypeException()
我发现我必须从流程名称中删除 application/json:
:
<flow name="post:/api/v1:api-v1-config">
<set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
使用此配置,抛出正确的异常 (HTTP 415)。
我在 Mule Community Edition 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 ...
的异常并收到 HTTP 500 响应。
我错过了什么,在这种情况下我必须在哪里告诉配置它应该 return HTTP 415?
如果您的项目不是基于 RAML 的,您将需要创建一个单独的流程来处理所有其他媒体类型,然后手动 throw new org.mule.module.apikit.exception.UnsupportedMediaTypeException()
我发现我必须从流程名称中删除 application/json:
:
<flow name="post:/api/v1:api-v1-config">
<set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>
使用此配置,抛出正确的异常 (HTTP 415)。