首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mule APIkit:"Flow not“,而不是HTTP415不支持的媒体类型

Mule APIkit:"Flow not“,而不是HTTP415不支持的媒体类型
EN

Stack Overflow用户
提问于 2016-11-25 08:34:52
回答 2查看 3.8K关注 0票数 0

我在Mule Community 3.8应用程序中定义了以下流:

代码语言:javascript
复制
<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的映射

代码语言:javascript
复制
<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="{ &quot;message&quot;: &quot;Unsupported media type&quot; }" doc:name="Unsupported media type"/>
</apikit:mapping>

现在,当我用Content-Type: application/xml向那个端点发送请求时,我在日志中看到一个名为Flow not found for resource ...的异常,并接收一个HTTP500响应。

我遗漏了什么,在这种情况下,我必须在哪里告诉配置它应该返回HTTP 415呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-07 15:15:06

我发现我必须从流名中删除application/json:

代码语言:javascript
复制
<flow name="post:/api/v1:api-v1-config">
  <set-property propertyName="Content-Type" value="application/json" doc:name="Property"/>

使用此配置,将引发正确的异常(HTTP 415)。

票数 1
EN

Stack Overflow用户

发布于 2016-12-01 10:57:27

如果您的项目不是基于RAML的,则需要创建一个单独的流来处理所有其他媒体类型,然后手动处理throw new org.mule.module.apikit.exception.UnsupportedMediaTypeException()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40800669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档