2015-11-13 100 views
1

我想將我們的幾個駱駝應用程序移到Spring Boot。我發現的大多數例子都是使用java dsl。我們目前支持的應用程序都基於Spring XML。將駱駝Spring XML移動到Spring Boot

我應該採取哪些步驟將這些應用程序遷移到Spring Boot。如果我使用FatJarRouter,我的理解是駱駝上下文已經被自動配置,所以在我看來,我應該能夠在spring xml中定義路由。

@SpringBootApplication 
@ImportResource("classpath:camel-context.xml") 
public class CamelApplication extends FatJarRouter { 

    public static void main(String[] args) { 
     SpringApplication.run(CamelApplication.class, args); 
    } 

    @Bean 
    String myBean() { 
     return "I'm Spring bean!"; 
    } 
} 

駱駝的context.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> 
    <routes xmlns="http://camel.apache.org/schema/spring"> 
     <route id="test"> 
      <from uri="timer://trigger"/> 
      <transform> 
       <simple>ref:myBean</simple> 
      </transform> 
      <to uri="log:out"/> 
     </route> 
    </routes> 
</beans> 

異常

2015-11-13 15:59:13.734 WARN 2156 --- [on(5)-127.0.0.1] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Cannot locate BeanDefinitionParser for element [routes] 
Offending resource: class path resource [camel-context.xml] 
    at org.springframework.beans.factory.parsing.FailFastProblemReporter.fatal(FailFastProblemReporter.java:60) ~[spring-beans-4.2.2.RELEASE.jar:na] 
    at org.springframework.beans.factory.parsing.ReaderContext.fatal(ReaderContext.java:68) ~[spring-beans-4.2.2.RELEASE.jar:na] 
+0

是的,我們應該讓這更容易。我已經登錄了一張票:https://issues.apache.org/jira/browse/CAMEL-9325 –

+0

我還應該使用FatJarRouter嗎? – zachariahyoung

回答

1

請參見本頁面底部如何將XML路線:

+0

嗨,克勞斯,我想知道什麼是最佳做法。由於我正在寫Spring Boot中的所有路由,所以我正在思考以下內容。 1)如果我用xml編寫路線或休息dsl,他們將在一個地方。但是我不會按照反對任何xml的春季最佳實踐。我覺得在xml中閱讀路線也比較容易。 2)如果我用駱駝寫的路線dsl有任何優勢。有沒有人對此進行辯論?任何鏈接。 –

+0

「Goodbye XML,hello Java DSL」是http://joaodiogovicente.blogspot.in/2015/04/rest-with-camel-215.html中陳述的內容。 這給出了一些新的代碼所包含的方向。 –

+0

@davsclaus 以下是關於如何添加REST-XML DSL部分的混淆。上述鏈接狀態**「Rest-DSL XML文件應該是Camel XML rests(不是CamelContext),例如」 其中as [link] https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.2/html/apache_camel_development_guide/restservices-restdsl 指出:_italic_ XML,用XML DSL定義一個服務,定義一個rest元素作爲camelContext元素的子元素。 – peetTechs

相關問題