[英]Camel 2.21.1 RouterBuilder OSGI Service getting exception due to Simple language not found in OSGI Service Registry
我正在擴展 Camel RouteBuilder 以定義 Camel 路線,因此我的專用 class 是一個 OSGI 組件,並且在 @Activate 方法上正在創建駱駝上下文,例如:
camelContext = new OsgiDefaultCamelContext(bundleContext);
之后調用camelContext.addRoute(this)
方法,但是當調用org.apache.camel.NoSuchLanguageException
camelContext.start()
方法時,會拋出 org.apache.camel.NoSuchLanguageException。 因此,由於org.apache.camel.language.simple.SimpleLanguage
尚未在 OSGI SR 中注冊,因此看起來存在賽車情況。
注意:路由構建器專業化中沒有 OSGI 注入,因此即使在駱駝核心組件之前,它也可以更快地激活。
然后,我想知道這是否是一個問題,一旦對我的自定義捆綁包添加 Camel 內部依賴項(如 SimpleLanguage 參考)沒有意義,只是為了擺脫這種賽車條件。
如果您在 OSGi 中手動創建 Camel,則需要對 CamelContext 進行更多設置。
如果您自己創建 osgi 駱駝上下文,您還需要進行一些設置 看看 camel-core-osgi 有一個幫助器 class 有一個設置一堆東西的方法
我想知道 Camel-core 激活器和我的自定義包是否存在競爭條件(根本沒有 Camel OSGI 依賴項),因為包語言已注冊以下調用堆棧包激活
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.