apache-camel - Apache Camel Karaf 强制标头被忽略
问题描述
我有一条带有休息看跌期权的路线。而且我需要在此调用中声明一个强制标头。但我没有从 blueprint.xml 得到它。即使没有声明的标头,答案也是 200。这是我的路由 xml:
<restConfiguration bindingMode="json"
clientRequestValidation="true" component="jetty"
enableCORS="true" host="{{rest.endpoint.host}}" port="{{rest.endpoint.port}}">
<dataFormatProperty key="prettyPrint" value="true"/>
enter code here
我忘记了什么或写错了什么?谢谢收听。
解决方案
您错过了您的问题的路线,您所拥有的是休息配置。
您可以使用filter
检查是否缺少标头,然后设置正确的响应正文和标头,并stop
在请求中缺少标头时用于提早退出。
以下是 Java-DSL 中的方法
from("direct:needsHeader")
.filter(header("requiredHeader").isNull())
.setHeader("CamelHttpResponseCode", constant(400))
.setHeader("Content-Type", constant("text/plain"))
.setBody().constant("Missing requiredHeader!")
.log("${body}")
.stop()
.end()
.setHeader("CamelHttpResponseCode", constant(200))
.setHeader("Content-Type", constant("text/plain"))
.setBody().simple("requiredHeader value: ${headers.requiredHeader}")
.log("${body}");
我自己并没有太多使用蓝图,但上面的蓝图可能也很容易实现。
推荐阅读
- oauth-2.0 - 使用 Jwt Oauth2 授权的 Docusign 嵌入式签名,无需客户登录/同意
- c# - 如何根据 Active Directory 安全组显示 Razor 页面的部分内容
- mvvm - 视图模型 + 导航 + 撰写
- c++ - 简单类中的虚方法真的是虚的吗?
- javascript - setState 不在另一个函数中更新
- python - django 使用父表中的值而不是 ID 批量插入
- javascript - 验证已过期。再次选中复选框 - Vue.js 中的 reCaptcha
- javascript - 如何使用 url 进行快速路由
- javascript - 如何在 JavaScript 中调用对象内函数的私有变量
- android - 如何使用 Hilt 将 ViewBinding 注入 Fragment