gpt4 book ai didi

java - 如何使用 Apache Camel 和 Jetty 创建 REST 微服务

转载 作者:行者123 更新时间:2023-12-02 12:11:00 25 4
gpt4 key购买 nike

我一直在尝试使用 Apache Camel 创建基于 REST 的微服务。根据我的实验,这就是我如何使用 Jetty 创建 echo 服务:

Maven

在 Maven 构建中包含以下依赖项:

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jetty</artifactId>
</dependency>

Java

用 Java 创建了一个小路由,它获取请求,将其转换为字符串,将其保存到文件中,然后将其发送回客户端:

import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

public class EchoHttpServer {

public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {

@Override
public void configure() throws Exception {
from("jetty://http://localhost:8099/echo?httpMethodRestrict=POST")
.convertBodyTo(String.class)
.to("file://D:/work")
.process(exchange -> exchange.getOut().setBody(exchange.getIn().getBody()));
}
});
context.start();
}
}

集成测试

然后可以使用 Chrome 扩展 Postman 进行测试,您可以使用该扩展发送 POST 请求,然后回复会回显该请求:

enter image description here

这是使用 Apache Camel 创建基于 REST 的服务的推荐方法吗?上述方法有哪些潜在问题?

最佳答案

有多种方法可以使用 Camel 公开 REST 服务。

纯粹的servet - 这就是你已经做的。似乎是快速而简单的方法(也许太简单了)。

REST Camel 端点(感谢 noMad)http://camel.apache.org/restlet.html

在带有框架的容器中。我最喜欢的是Apache KarafCamel-CXF 。它需要更多的时间来启动,更多的内存来运行,但框架允许额外的功能,例如身份验证、授权、日志记录……

如果有人找到其他方法,请添加答案或评论,我也渴望找到新的选择

关于java - 如何使用 Apache Camel 和 Jetty 创建 REST 微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46550933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com