是否可以使用jetty和unirest调试camel Rest dsl组件

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

我有一个 CarService 课程:

    public class CarService {
    
        public Car getCar(){
            Car car = new Car();
            car.setBrand("hello");
            car.setId("1");
            return car;
        }
    }

我使用在通过 CDI 注入的 RouteBuilder 中定义的camel Restdsl 通过 jetty 端点公开它。

     restConfiguration().component("jetty")
                    .host("localhost")
                    .port("8889")
                    .bindingMode(RestBindingMode.json);

 rest("/cars").get().route().bean(CarService.class, "getCar");

这是我的单元测试

     @Test
        public void restTest() throws Exception {
    
            Main booter = new Main();
            booter.start();
    
            HttpResponse<JsonNode> carResponse =
                    Unirest.get("http://localhost:8889/cars").asJson();
    
            String s = carResponse.getBody().toString();
    
            assertEquals("{\"id\":\"1\",\"brand\":\"hello\"}", s);
    
            booter.stop();
        }

主要来自org.apache.camel.cdi

我正在使用 uniRest 发送 HTTP 请求 (http://unirest.io/java.html)

运行单元测试时,它通过了,但是如果我在 getCar() 方法中放置断点,则不会命中断点。

rmq: 我也尝试过像这样使用 ProducerTemplate

    List<CamelContext> contexts = ngbaMain.getCamelContexts();
    FluentProducerTemplate fpt =  DefaultFluentProducerTemplate.on(contexts.get(0));
    
    Object result = fpt.to("jetty:http://localhost:8889/cars?httpMethodRestrict=GET")
            .request(String.class);

但是也没用...

有人可以告诉我一些如何做到这一点的见解吗?这可能吗...测试端点会很棒...

更新

我正在使用 IntelliJ 进行测试,如果我在以下行中按 F7:

     HttpResponse<JsonNode> carResponse =
                    Unirest.get("http://localhost:8889/cars").asJson();

这就是我进入(奇怪的是,只需按一两次 F7 就足够了)我进入我的 CarService...所以也许它更像是 IntelliJ 的东西,而不是骆驼或码头或......

intellij-idea apache-camel jetty unirest
1个回答
0
投票

正如我在问题更新中所述,当进入 unirest 类然后恢复时,我可以命中断点。所以这更多是一个与 IDE 相关的问题。

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