代码之家  ›  专栏  ›  技术社区  ›  Victor Tripeno

Apache Camel路由无法找到终结点

  •  0
  • Victor Tripeno  · 技术社区  · 8 年前

    from("cxfrs:{{url}}?resourceClasses=MyImpl&bindingStyle=SimpleConsumer")
    .to("${header.operationName}").end();
    from("direct:{{getUser}}")
            .bean("userImpl", "getUserByName")
            .marshal().json(JsonLibrary.Jackson)
        .to("log:foo");
    
        from("direct:{{login}}")    
            .bean("userImpl", "loginUser")
            .marshal().json(JsonLibrary.Jackson)
        .to("log:foo");
    

    如果我尝试在处理器中获取operationName,我可以获取它,但如果我调用此路由,我会收到以下消息:

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Error 500 No consumers available on endpoint: Endpoint[direct://$%7Bheader.operationName%7D]. Exchange[ID-NBSPO049-64311-1498773394077-0-2] while invoking public java.lang.String com.itau.ea4.implementacao.UserImpl.loginUser(java.lang.String,java.lang.String) with params [teste, 1234].</title>
    </head>
    <body>
        <h2>HTTP ERROR 500</h2>
        <p>Problem accessing /user/login. Reason:
    
            <pre>    No consumers available on endpoint: Endpoint[direct://$%7Bheader.operationName%7D]. Exchange[ID-NBSPO049-64311-1498773394077-0-2] while invoking public java.lang.String com.itau.ea4.implementacao.UserImpl.loginUser(java.lang.String,java.lang.String) with params [teste, 1234].</pre>
        </p>
        <hr>
        <i>
            <small>Powered by Jetty://</small>
        </i>
        <hr/>
    </body>
    

    我的路线怎么了?

    1 回复  |  直到 8 年前
        1
  •  4
  •   Vyacheslav Enis    8 年前

    问题在于:

    .to("${header.operationName}")
    

    “to(…)”不支持动态数据,因此在您的示例中,它实际上尝试发送到端点“direct:{header.operationName}”。