如何在 apache Camel Rest api 中进行自定义错误处理?

2023-12-02

我有一个 apache Camel Rest api,它从 S3 下载文件。我发送 json 输入(key, bucketname, accessKey, secretKey, region)以便写入 URI。代码如下所示:

public static class HelloRoute extends RouteBuilder {
       
   @Override
   public void configure() {
     rest("/")
     .post("file-from-s3")
     .route()
     .setHeader(AWS2S3Constants.KEY, key)
     .to("aws2-s3://bucketname?accessKey=INSERT&secretKey=INSERT&region=INSERT&operation=getObject")
      .endRest();
          }
}

我可以通过使用在上面代码中提到的地方获取相应的 json 输入JSONObject作为身体。

如果假设,我在 json 输入中输入了错误的值(例如 accessKey),我会收到类似的错误

The AWS Access Key Id you provided does not exist in our records. (Service: S3, Status Code: 403, Request ID: 6923BEC55C1FD5F1, Extended Request ID: re5Rb7I76j9jvGqhSQXgjUoMwOZqsprg22bOGD+BDbuj0zrRrf0FceLaapvpR4KcNDY6GntNiF0=)

这对用户来说不太友好。我如何为此编写一个自定义错误处理程序,它只会返回上述情况的错误消息,例如 Wrong Access Key


您需要使用“onException”子句并在处理器中创建您自己的响应。看:https://camel.apache.org/manual/latest/exception-clause.html

onException(TheThrownException.class)
    .handled(...) //--> depend on your need true or false
    .continued(...) //--> depend on your need true or false
    .process("processor1")
    .to("direct:error-handling-endpoint")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 apache Camel Rest api 中进行自定义错误处理? 的相关文章

随机推荐

  • 制作/查找 html5 验证器书签

    我想找到或制作一个书签 它将使用 W3C HTML 5 验证器验证当前查看的页面的 html 内容 我找到了两个小书签 并试图让其中一个的行为有点像一个 又有点像另一个 但我不知道该怎么做 克里斯 科伊尔有一个HTML5 验证书签效果很好
  • 如何在 python 中使用 xlsxwriter 将数据写入/更新现有 XLSX 工作簿的单元格

    我可以使用写入新的 xlsx 工作簿 import xlsxwriter def write column csvlist workbook xlsxwriter Workbook filename xlsx strings to numb
  • 如何根据条件更新具有 2 个可能值的字段?

    我是 mongodb 的新手 我有一个这样的数据库 universe DC characters name superman selected true name wonder woman selected false name flash
  • 我怎样才能让这个 jQuery 比我现有的更快?

    目前 我将此脚本用于一种 选项卡 系统 单击一个选项卡时 它会隐藏所有其他选项卡 他们都是div的 但现在 我认为在选定的 div 加载之前它的褪色速度不够快 它最终会移动到所选且现在显示的 div 下方 我不需要切换 因为如您所见 我有
  • 为什么 C++ 仍然有一个删除[] AND 删除运算符? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 用单个关键字实现数组的删除
  • Javascript 生成的内容的 SEO 优化?

    我为我的网站 xyz com 创建了小部件 它可以嵌入到不同的网站中 假设我在另一个网站 abc com 中嵌入了一个相册小部件 内容驻留在 xyz com 上 但通过 Javascript 将其拉入 abc com abc com 上的小
  • 如何为 Django 中的某一类别创建链接

    我正在编写一个新闻网站 我在新闻模型中有 类别 我想获取 index html 中名为 意见 的类别之一中的所有新闻 并为每个人创建详细信息页面链接 我可以知道上面提到的新闻的标题 作者等 但是我的大脑真的很垃圾 我不知道如何为每个新闻创建
  • 在子图的情况下,如何为所有 x 轴和 y 轴使用通用标签?

    我使用以下循环来获取子图 for j 1 19 Aj B j subplot 5 4 j plot Aj h end 对于所有这些子图 我只需要一个 x 标签和一个 y 标签 这个怎么做 另外如何将图例插入到所有子图中 您可以使用supla
  • Oracle 中相当于 SQL Server 的 IsNull() 函数的是什么?

    在 SQL Server 中我们可以输入IsNull 确定字段是否为空 PL SQL 中有等效的函数吗 coalesceOracle 和 SQL Server 均受支持 其功能与nvl and isnull 有一些重要的区别 coalesc
  • 如何解析SVG元素的viewBox x、y、宽度和高度值?

    假设我有一个 SVG 元素
  • PySide/PyQt4:向 QTableWidget 水平(列)标题添加复选框

    我试图在 qtablewidget 的水平 列 标题中放置一个复选框 基于其他帖子here 因为基本对象类型是相同的 我尝试过 item QtGui QTableWidgetItem item setCheckState QtCore Qt
  • Spring 和 Ajax

    我可以将 Spring 表单标签库与 Ajax 结合使用吗 我无法检索控制器内的表单输入参数 他们总是null 实际上有一个逻辑 就是表单永远不会被提交 但随后我只能将字符串发送到我的控制器 而不是像映射到 Spring 的表单提交那样发送
  • 如何使用 Metal 将纹理缓冲区数据传递给 Shader?

    我想在计算着色器中将纹理数据作为一维数组处理 我读到最好的方法是将其作为缓冲区而不是一维纹理传递 我正在加载纹理 let textureLoader MTKTextureLoader device device do if let imag
  • DataGridView 中的总计行

    我正在开发一个winform应用程序 我想显示每列最后一行的列总和 该行必须始终可见 目前 我正在考虑在带有记录的数据网格视图下方添加另一个数据网格视图 并将在底部数据网格视图中显示总和 如果有更好的方法来完成这个任务吗 不 需要添加另一个
  • 删除 geom_text 中的重复标签

    我的数据如下所示 composerName season Location Time Venue eventType id conductorName interval movement workTitle 1 Anthem 1918 19
  • Magento 1.6,Google 购物/产品/内容

    Magento 1 6 于本周初发布 但使用 mage googleshopping 扩展 http www magentocommerce com magento connect Magento Core extension 6887 m
  • 编译 Play 应用程序时出现的问题

    我在编译 Play 框架应用程序时遇到了一些问题 有时应用程序运行良好 但大多数时候这些问题都是在 sbt 和 activator 工具中发生的 这是使用 sbt 编译我的应用程序的示例 info Compiling 15 Scala so
  • Objective C 类方法返回值,分配给弱/强属性

    我面临着一些涉及弱属性和强属性的困惑 为了简洁起见 我不会包含整个代码 我创建了一个返回 UIView 对象的类便捷方法 并在 UIView 类别中实现了它作为子类化的替代方法 implementation UIView CSMonthVi
  • 使用 CUT 和 Quartile 在 R 函数中生成中断

    下列的之前的一些很好的建议 我现在正在编写第二个 R 函数并使用类似的逻辑 然而 我正在尝试更多地自动化 但可能变得太聪明了 不利于我自己 我想根据订单数量将客户分成五分位数 这是我执行此操作的代码 sample data clientID
  • 如何在 apache Camel Rest api 中进行自定义错误处理?

    我有一个 apache Camel Rest api 它从 S3 下载文件 我发送 json 输入 key bucketname accessKey secretKey region 以便写入 URI 代码如下所示 public stati