我們正在使用Blueprint + Camel + Karaf,從Spring遷移。 我是新的OSgi藍圖。我們使用Blueprint XML來定義blueprint xml中定義的bean的服務。駱駝路線無法找到在其他藍圖xml文件(其他捆綁)中定義的bean
後,我們在藍圖XML增值業務,至少從karaf得到如下: FYI:束處於Active狀態
karaf>service:list | grep custom
[org.apache.camel.Processor, com.rnd.model.impl.PaymentServiceProcessorBase,com.rnd.generic.CustomServiceP rocessor]osgi.service.blueprint.compname = customPaymentProcessor
我相信bean被註冊到OSGi服務。但不知何故,其他Bundle中的其他XML不可見。
**Blueprint XML**::
<bean id="customPaymentProcessor" class="blah blah"/>
<service ref="customPaymentProcessor" auto-export="all-classes"/>
請幫我如何獲得accesss(下karaf根目錄)文件夾這個bean在路由XML文件中的AppConfig。
myRoutes.xml
<!-- Add this route to CamelContext Using LoadRouteDefinitions -->
<routes id="xyz-Context" xmlns="http://camel.apache.org/schema/spring">
<route id="xyz-one">
<from uri="direct:xyz"/>
<!-- this customPayProcesssor is exposed as above -->
<process ref="customPayProcesssor"/>
</route>
</routes>
所有OSGi服務都隱含註冊爲OSGi regsitry駱駝進行搜索。但我得到; ::
[Bean[ref:cust... because of No bean could be found in the registry for: customPaymentProcessor
在我嘗試你的之前,我已經閱讀過我上面提到的redhat論壇。在我的routes.xml中,我如何使用這是無效的? –
Slok
如果您確實使用藍圖(而不是Spring),則參考元素應該可用。也許你錯過了一個命名空間? – noMad17