2017-08-26 189 views
0

我試圖在Wildfly Swarm中設置Camel Rest服務,我不確定RouteBuilder類如何實例化,或者甚至如何實現CamelContext。我已經下載了Wildfly Swarm的例子,並且看了一下Camel CXF-JAXRS項目,這很合理,但它使用XML來定義路由。我想使用Java DSL。我RouteBuilder類看起來是這樣的:在Wildfly Swarm上使用Java DSL設置Apache Camel Rest路由

public class GreetingService extends RouteBuilder { 
    @Override 
    public void configure() { 
     System.out.println("RouteBuilder.configure"); 
     restConfiguration().host("localhost").port("9797"); 
     rest("/say") 
       .get("/hello").to("direct:hello") 
       .get("/bye").consumes("application/json").to("direct:bye") 
       .post("/bye").to("mock:update"); 

      from("direct:hello") 
       .transform().constant("Hello World"); 
      from("direct:bye") 
       .transform().constant("Bye World"); 
    } 
} 

我有這樣的使用和不使用camel-context.xml文件嘗試。 Swarm啓動,但我無法瀏覽到其他服務端點。

RouteBuilder如何被調用?我應該有某種main方法實例化CamelContext

我正在使用Widlfy Swarm 2017.8.1,並且該課程是在war文件中。

+0

您是否應用野驢駱駝補丁。我剛纔做了這個,在開始工作之前我需要做一些步驟。 Hoe gaan dit遇到了Slaapstad? – Namphibian

+0

@Nanphibian baie lekker :)我使用mvn來管理Wildfly Swarm版本(以及它的所有依賴項),它在2017.8.1這是最新的穩定版本。 –

回答

1

您可以將此偵聽器添加到web.xml中以引導駱駝。
org.apache.camel.component.servletlistener.SimpleCamelServletContextListener 或者您可以使用彈簧來定義駱駝環境

+0

這是有效的。我添加了一個'src/main/resources/camel/camel-context.xml'文件,並指定了RouteBuilder類是這樣的包:' za.co.camel。其餘' –