使用 Apache Camel 调用 Rest API

问题描述 投票:0回答:1

我正在尝试使用 apache Camel 调用 REST API,但出现异常

org.apache.camel.FailedToCreateRouteException:无法在以下位置创建路由route1:>>> To[http://devloyalty.darkwing.io/api/test_loyalty] <<< in route: Route(route1)[[From[direct:start]] -> [SetHeader[CamelHttpMe... 因为无法解析端点:“my_url_here”,因为:未找到使用方案的组件:http

示例代码是

public class RestApiRouteBuilder extends RouteBuilder {
                @Override
                public void configure() throws Exception {
                    from("direct:start").
                    setHeader(Exchange.HTTP_METHOD, constant("GET")).
                    setHeader(Exchange.CONTENT_TYPE, constant("text/plain")).
                    to("my_url");
                }
            }

 public void restApiTest(){
    RestApiRouteBuilder restApiRouteBuilder = new RestApiRouteBuilder();
    CamelContext camelContext = new DefaultCamelContext();
    try{
        camelContext.addRoutes(restApiRouteBuilder);
        camelContext.start();

        ProducerTemplate template = camelContext.createProducerTemplate();
        String headerValue = "text/plain";

        Map<String, Object> headers = new HashMap<String,Object>();
        headers.put("Content-Type", headerValue);

        Object result = template.requestBodyAndHeaders("direct:start", null, headers, String.class);
        Exchange exchange = new DefaultExchange(camelContext);
        String response = ExchangeHelper.convertToType(exchange, String.class, result);
        System.out.println("Response : "+response);


    } catch (Exception e){
        System.out.println("The Exception is : " + e);
    }
}

还有camel http的maven依赖

<dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http4</artifactId>
        <version>2.22.2</version>
        <scope>test</scope>
    </dependency>
java apache-camel
1个回答
0
投票

如何从ProducerTemplate发送动态参数查询和uri参数

© www.soinside.com 2019 - 2024. All rights reserved.