Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ApacheCamel和Jetty创建REST micros服务_Java_Rest_Apache Camel - Fatal编程技术网

Java 如何使用ApacheCamel和Jetty创建REST micros服务

Java 如何使用ApacheCamel和Jetty创建REST micros服务,java,rest,apache-camel,Java,Rest,Apache Camel,我一直在尝试使用ApacheCamel创建基于REST的微服务。根据我的实验,我是如何使用Jetty创建echo服务的: 专家 在Maven构建中包含以下依赖项: <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-jetty</artifactId> </dependency> 集成测试 然后可以使用Chrome exten

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

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

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jetty</artifactId>
</dependency>
集成测试 然后可以使用Chrome extension Postman进行测试,您可以使用它发送POST请求,然后回复:


这是使用ApacheCamel创建基于REST的服务的推荐方法吗?上述方法可能存在哪些问题?

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

纯服务-这是您已经做过的。似乎是快捷简单的方式(可能太简单了)

REST骆驼端点(感谢noMad)

在带有框架的容器中。我最喜欢的是和。启动需要更多的时间,运行需要更多的内存,但框架允许附加功能,如身份验证、音频化、日志记录等


如果有人找到了另一种方法,请添加答案或评论,我也渴望找到新的选项

如果您想使用Camel创建基于REST的服务,我建议查看Camel REST DSL:我目前正在创建一个基于Camel的伪REST服务,用于内部评估。它将Camel的REST DSL与Jetty以及JSON HAL支持、Spring安全性、Amazon X射线和Mongo视图等其他技术结合使用。如果你感兴趣,你可以。但是,请注意,这更多的是一个技术演示,而不是一个真正的成熟APIs,因为您需要一个提示:Camel's REST DSL^^如果您也渴望找到新的选项,为什么不将问题向上投票?:)
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();
    }
}