进行骆驼异步调用

学习者

我正在尝试使用 apache camel API 对网络服务进行异步调用。

如果我拨打正常电话,它工作正常。但是当我尝试进行异步调用时,它并没有命中 API。你能帮我看看这里有什么问题吗?

@Test
public void testSendAsync() {
    Map<String, Object> headers = new HashMap<>();
    headers.put("content-type", "application/json");
    System.out.println("start = "+headers);
    ProducerTemplate template = context.createProducerTemplate();
    /*template.sendBodyAndHeaders("direct:invokeAPI","{\n" +
            "\"source\":\"PDF\"\n" +
            "}", headers);
            */

    Future fut = template.asyncRequestBodyAndHeaders("direct:invokeAPI","{\n" +
            "\"source\":\"PDF\"\n" +
            "}", headers);

    System.out.println("end = "+headers + " , " + fut.isDone());
}

在上面的代码sendBodyAndHeaders中工作正常,我可以看到它成功地访问了 API。

在异步调用的情况下asyncRequestBodyAndHeaders,它没有命中 API,我看到的system.outstart消息end这里有什么问题?

维京史蒂夫

异步请求可能正在创建另一个线程并且测试在该其他线程有机会完成 API 操作之前停止完成。

您可以尝试“等待”或“放弃”线程吗?

多线程在测试中有时会很困难。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章