我正在尝试使用 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>
如何从ProducerTemplate发送动态参数查询和uri参数