如何在 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 中进行自定义错误处理? 的相关文章

  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • 制作/查找 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