簡體   English   中英

由於在 OSGI 服務注冊表中找不到簡單語言,Camel 2.21.1 RouterBuilder OSGI 服務出現異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM