Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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进行rest调用_Java_Apache Camel - Fatal编程技术网

Java 使用apachecamel进行rest调用

Java 使用apachecamel进行rest调用,java,apache-camel,Java,Apache Camel,嗨,我想调用一个URL为的rest服务 http://ex.abc.com/orders/resources/{var1}/{var2}/details?orderNumber=XXXXX 其中var1和var2是动态值。根据输入,它们将改变。 我还想设置两个标题,比如key1:value1,key2:value2 如何使用给定的头对给定的url进行rest调用,然后使用ApacheCamel查看响应?(响应总是JSON)。您可以在路由块中使用动态uri。 看见 请注意,这可以在from()和

嗨,我想调用一个URL为的rest服务

http://ex.abc.com/orders/resources/{var1}/{var2}/details?orderNumber=XXXXX
其中var1和var2是动态值。根据输入,它们将改变。 我还想设置两个标题,比如key1:value1,key2:value2


如何使用给定的头对给定的url进行rest调用,然后使用ApacheCamel查看响应?(响应总是JSON)。

您可以在路由块中使用动态uri。 看见 请注意,这可以在from()和to()中完成

例如:
[来自(以前的应用程序终结点)]
->[To(使用来自exchange的动态值执行rest)]

->[To(处理返回的json)]

您可以在路由块中使用动态uri。 看见 请注意,这可以在from()和to()中完成

例如:
[来自(以前的应用程序终结点)]
->[To(使用来自exchange的动态值执行rest)]

->[To(处理返回的json)]

如果正在进行rest调用,则可以使用该组件。在页面的最底部,您将看到一个处理器将消息设置为rest调用的示例。关于你的问题,你可以使用

inMessage.setHeader(Exchange.HTTP_PATH, "/resources/{var1}/{var2}/details?orderNumber=XXXXX");

设置可能需要的任何路径参数

如果您正在进行rest调用,则可以使用该组件。在页面的最底部,您将看到一个处理器将消息设置为rest调用的示例。关于你的问题,你可以使用

inMessage.setHeader(Exchange.HTTP_PATH, "/resources/{var1}/{var2}/details?orderNumber=XXXXX");

设置可能需要的任何路径参数

请尝试使用camel servlet

在web.xml中, /*

参考:
请尝试使用camel servlet

在web.xml中, /*

参考:

下面是一个使用ApacheCamel进行Rest调用的示例

package camelinaction;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.apache.camel.spring.boot.FatJarRouter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class OrderRoute extends FatJarRouter {

    @Bean(name = "jsonProvider")
    public JacksonJsonProvider jsonProvider() {
        return new JacksonJsonProvider();
    }

    @Override
    public void configure() throws Exception {
        // use CXF-RS to setup the REST web service using the resource class
        // and use the simple binding style which is recommended to use
        from("cxfrs:http://localhost:8080?resourceClasses=camelinaction.RestOrderService&bindingStyle=SimpleConsumer&providers=#jsonProvider")
            // call the route based on the operation invoked on the REST web service
            .toD("direct:${header.operationName}");

        // routes that implement the REST services
        from("direct:createOrder")
            .bean("orderService", "createOrder");

        from("direct:getOrder")
            .bean("orderService", "getOrder(${header.id})");

        from("direct:updateOrder")
            .bean("orderService", "updateOrder");

        from("direct:cancelOrder")
            .bean("orderService", "cancelOrder(${header.id})");
    }
}
源代码链接:


我强烈建议您参考camelinaction2,因为它涵盖了许多高级主题,并且是由@Claus Ibsen编写的。

下面是一个示例,您可以在其中找到Apache Camel的Rest调用

package camelinaction;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.apache.camel.spring.boot.FatJarRouter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class OrderRoute extends FatJarRouter {

    @Bean(name = "jsonProvider")
    public JacksonJsonProvider jsonProvider() {
        return new JacksonJsonProvider();
    }

    @Override
    public void configure() throws Exception {
        // use CXF-RS to setup the REST web service using the resource class
        // and use the simple binding style which is recommended to use
        from("cxfrs:http://localhost:8080?resourceClasses=camelinaction.RestOrderService&bindingStyle=SimpleConsumer&providers=#jsonProvider")
            // call the route based on the operation invoked on the REST web service
            .toD("direct:${header.operationName}");

        // routes that implement the REST services
        from("direct:createOrder")
            .bean("orderService", "createOrder");

        from("direct:getOrder")
            .bean("orderService", "getOrder(${header.id})");

        from("direct:updateOrder")
            .bean("orderService", "updateOrder");

        from("direct:cancelOrder")
            .bean("orderService", "cancelOrder(${header.id})");
    }
}
源代码链接:

我强烈建议您参考camelinaction2,因为它涵盖了许多高级主题,并且是由@Claus Ibsen编写的。

from()将包含哪些内容?from()将包含哪些内容?