问题标签 [camel-rest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4779 浏览

rest - Apache Camel Rest 为发布请求发送响应

我有一个骆驼端点,另一个应用程序发送一个带有一些数据的发布请求(也许有其他一些路由)

我想处理这些数据并通过 POST 请求的响应将某些内容返回给应用程序。

这就是我的骆驼上下文目前的样子:

如何通过发布请求的响应从路由 sendFinData 发回一些答案?

0 投票
2 回答
576 浏览

camel-rest - apache camel REST 失败并出现 [Error Creating bean with name 'rest-configuration']

我的路线如下所示 -

我也试过这个,

还有这个,

我已经尝试过camel-rest-starter在类路径中使用依赖项,也没有尝试使用它。

我试过把camel-rest而不是camel-rest-starter放在pom中。

但是没有什么能让异常消失,下面是堆栈跟踪-

请在这里帮助我。查看 Camel 网站上的示例,配置休息生产者端点看起来很容易,但对我来说却非常困难。

编辑-

由于 Rest 组件是 camel-core 的一部分,我使用的是camel-core-2.22.1

然后按照 Raúl Cancino 的建议,我也尝试了这个-

0 投票
3 回答
230 浏览

spring - Apache骆驼动态路由

我关注 Apache 骆驼休息服务(/sales),它在内部调用另一个休息服务(/getOrders)并获取对象列表。我能够在处理器中打印 JSON 响应,但在尝试从邮递员那里获取 java 对象作为响应。谁能帮我解决这个问题。附上响应日志以供参考。

在此处输入图像描述

0 投票
0 回答
154 浏览

apache-camel - Apache Camel Rest - v3.2.0 - 多部分文件上传问题

我期待用camel 3.2.0版本和JDK11实现分段文件上传

使用下面的代码,我能够成功地对旧版本的骆驼 2.x 做同样的事情,

将骆驼版本从 2.x 升级到 3.2.0 后,我们在上面的代码中遇到了“.attachments()”的编译时间问题。结果,我们将from路由替换为,

但是,在此之后,当我调试代码时,我得到了空附件。 SplitAttachmentsExpression->evaluate()->exchange.getIn(AttachmentMessage.class).hasAttachments()==> 评估为假。

作为升级的一部分,我在这里遗漏了什么吗?最新版本的 Camel 是否更改了导入文件功能? 非常感谢您的快速帮助,因为这在早期工作,现在我们完全被阻止了!

0 投票
1 回答
384 浏览

java - Changing Camel REST HTTP Binding Configuration

I'm using Camel REST with Camel servlet handling the REST transport and want to change the way headers from the exchange are processed in HTTP requests and responses. I'm using Spring XML to configure my application. Here's the relevant configuration I'm using:

When the routes are created, I see that the endpoints are configured with MyHttpBinding set. However, incoming requests are still using ServletRestHttpBinding. This is because when Camel creates the consumer, it executes this block of code:

How can I set the HTTP binding in a way that Camel will respect it?

0 投票
1 回答
678 浏览

spring-boot - 带有 Camel 2.25 的 Spring Boot 2.x:Spring 特定端点不起作用

我有一个带有 spring-boot 2.x 和 camel 2.25 的项目。它有不同的骆驼路线以及很少的 REST 消费者路线。到目前为止一切都很好。

现在我添加了一些带有一些端点的普通 spring-boot @RestController 类。但这些都不起作用(抛出 404)。

当我调查时发现,每个请求都来自 CamelServlet,它完全不知道基于 Spring 的普通 @RestController 端点(但只知道 Camel REST 消费者路由端点)。因此,仅针对 @RestController 端点抛出此错误,而 Camel REST 端点仍在工作。

下面是我的配置,

下面是我的POM

有什么我做错了吗?有什么建议吗?提前致谢。

0 投票
1 回答
531 浏览

java - 骆驼休息中不会发生请求验证

我正在尝试通过使用 apache camel 构建一些简单的 API 来进行实验。发布请求的请求正文为空,但骆驼不返回错误请求,而是返回 201。

这就是我所做的;

  1. 从 studentreg-api.yaml 生成类 [这是一个有效的 openapi 3 yaml 文档]
  2. 使用camel、spring boot构建REST端点步骤
  3. 配置骆驼休息端点clientRequestValidation(true)
  4. 启动服务器
  5. 打开 /api-docs 并验证是否正确标记了强制属性
  6. 从邮递员向带有空白请求正文的 POST 端点发出请求

预期:400 - 错误请求实际:201

我无法弄清楚我错过了什么。

BaseRouteConfig.java

RegisterStudentRoute.java

pom.xml

0 投票
0 回答
127 浏览

java - Camel K Rest 路由需要 JSON 编组并执行注释代码

A - 案例 1:Rest DSL 示例失败

我正在尝试应用用Apache Camel Rest DSL 组件编写的示例。Camel K的相同示例的简化版本如下所示;

然后,构建失败如下;

日志停止后,我看到它挂起,如下所示;

B - 案例 2:如果添加了 Json Marshalling,则 Rest DSL 示例有效

然后我通过应用删除kamel delete rest-route,然后marshal().json在直接路由的末尾添加一个单独的,开始它就kamel run RestRoute.java --dev可以了;

C - 案例 3:Route 与评论的 Json Marshalling 一起使用

最有趣和最奇怪的行为就是这种情况。我注释掉了这marshal().json()条线,它继续工作。但是,即使我删除了这条注释行,它也不起作用。所以工作示例如下;

D - 版本

MiniKube 版本;

Apache Camel K 版本;

Camel K 客户端版本;

E - 调查结果和问题

我哪里做错了?我刚刚使用了官方 apache 网站上给出的示例。有趣的事情是;

  • 该示例本身不起作用,但任何休息路线都需要 JSON 编组,即使内容是简单文本。
  • 注释行似乎在集成文件中执行;

这是一个错误,还是官方Apache Camel Rest DSL 示例中存在问题?

0 投票
0 回答
54 浏览

apache-camel - 如何使用 Camel Jetty 接收包含文件的 multipart/form-data 请求?

我在 Spring Boot 上使用 Camel 2.25 和 Camel Jetty。

我的目标是让客户端将文件上传到 Rest DSL 定义的 POST 端点。然而,在使用 Postman 进行测试时,我似乎找不到上传的文件。据我所知,Jetty 应该能够在multipart/form-data没有额外代码的情况下处理读取正文。

我已经在 Google 和 Stackoverflow 上搜索了有关为什么exchange.getIn().getAttachments()Jetty 应该填充数据的任何提示是空的。我还没有找到任何有用或有用的例子。

我需要做什么才能从multipart/form-dataHTTP 正文中获取上传的文件以及元数据?

0 投票
0 回答
178 浏览

apache-camel - Camel REST DSL 中的内容类型验证

我有一个 Camel Spring Boot 应用程序,它公开了一个我只想支持“application/json”媒体类型的 REST 端点。我的 REST DSL 配置如下 -

使用此设置,我希望收到“415 不支持的媒体类型”响应“应用程序/json”以外的内容类型。(https://camel.apache.org/manual/latest/rest-dsl.html#_client_request_validation

“text/plain”的行为与预期一样 -

但是,在省略 Content-Type 标头时,验证似乎没有启动。请求由路由处理,后来在 json 解析期间失败,因为缺少正文。

使用“application/x-www-form-urlencoded”的 Content-Type 和 JSON 有效负载,我根本没有得到任何回复 -

和服务器上的一个例外 -

Spring Boot 版本 - 2.5.4,Camel - 3.11.1

网络http

如何配置路由以一致地为所有不受支持的媒体类型抛出 415?