当前位置: 首页 > 知识库问答 >
问题:

在主类中调用Camel routeendpoint

郭皓
2023-03-14

我创建了一个带有endpoint`direct:getRestFromExternalService的Camel路由,当我尝试在另一个类的主方法中使用此endpoint时,我得到了一个异常

在交易所执行时出现异常:交易所[ID-wmli 118067-61025-1493883025815-0-2]

终结点上没有可用的使用者:终结点[direct://getRestFromExternalService]。交流[ID-wmli 118067-61025-1493883025815-0-2]

这是路由类:

public class MyRoute extends RouteBuilder {

@Override
public void configure() throws Exception {

    // Create the camel context for the REST API routing in Fuse
            CamelContext contextFuseAPI = new DefaultCamelContext();

            // Start the route inside the context to listen to the ActiveMQ
            contextFuseAPI.addRoutes(new RouteBuilder() {

                @Override
                public void configure() {
                    from("direct:getRestFromExternalService")
                        .setHeader(Exchange.HTTP_METHOD, simple("GET"))
                        .to("<external API URI>");
                }
});
}
}

这是具有调用此路由的主方法的类:

public class FuseApp {

public static void main(String[] args) throws Exception {
    CamelContext contextFuseAPI = new DefaultCamelContext();

    contextFuseAPI.addRoutes(new MyRoute());

    contextFuseAPI.start();

    Thread.sleep(3000);

    ProducerTemplate template = contextFuseAPI.createProducerTemplate();

    Object result = template.requestBody("direct:getRestFromExternalService", null, String.class);


    Exchange exchange = new DefaultExchange(contextFuseAPI);
    String response = ExchangeHelper.convertToType(exchange, String.class, result); 
    System.out.println("Response : "+ response);        

    contextFuseAPI.stop();


}

}

我在没有ProducerTemplate和Object行的情况下测试了主方法,并运行了它。是否有方法从不同类中实现的路由调用带有endpoint的requestBody?

共有1个答案

何灿
2023-03-14

我解决了这个问题,问题是上下文是在route类和main method类中创建的。

 类似资料:
  • 问题内容: 当我尝试从类的正文中使用静态方法,并使用内置函数作为装饰器来定义静态方法时,如下所示: 我收到以下错误: 我了解为什么会发生这种情况(描述符绑定) ,并且可以通过在上次使用后手动将其转换为静态方法来解决此问题,如下所示: 所以我的问题是: 是否有更好的方法(如更清洁或更“ Pythonic”的方法)来实现这一目标? 问题答案: 对象显然具有存储原始原始函数的属性(它们必须这样做)。所以

  • 我有一个片段类,我想在我的活动的“main”类中调用一个方法。fragment类是静态的,所以这可能是导致问题的原因,尽管我必须使它保持静态。我希望能够在静态类中执行类似的操作:

  • 我已经做了相当多的研究,从我所看到的来看,我一切都是正确的。我试图在JSP文件中调用一个Java类。每次运行时,我都会出现以下错误:

  • 问题内容: 如何从单独的对象调用tkinter ? 我在寻找类似wxWidgets的东西。例如,如果我创建一个对象,并将其根实例传递给它,然后尝试从我的对象中调用该根窗口的方法,则我的应用程序将锁定。 我能想到的最好的方法是使用该方法并从单独的对象检查状态,但这似乎很浪费。 问题答案: 要回答“如何从单独的对象调用TkInter事件”这一特定问题,请使用命令。它允许您将事件注入到根窗口的事件队列中

  • flutterfire最近引入了一些更改,其中之一是需要在使用任何插件之前调用initializeApp()。 主要叫它行吗?类似这样的事情:

  • 我需要从AsyncTask调用一个非静态方法 必须在onPostExecute中调用此方法 我用过: 编辑:我尝试过: 投掷: