我有一個OSGi包(部署到卡拉夫2.2.4),啓動一個駱駝(2.10.0)上下文。駱駝上下文的routebuilder有一定的XQuery端點的URI如駝峯xquery端點與OSGi包uri
"xquery:classpath:Dir1/Dir2/example.xq"
當上下文試圖解決URI,它失敗了,因爲駱駝包是不是在同一個類路徑的.xq文件駐留的位置。所以,我創建了ClassPathScanningCandidateComponentProvider
(春季3.1.1)打交道時,一個URL擴展功能,輪流
"xquery:classpath:..."
到
"xquery:bundle://42.0:6/..."
,因爲我已經在我的項目涉及捆綁的URI和OsgiBundleResourcePatternResolver
更早。不幸的是,我似乎無法找到使駱駝的XQueryComponent
使用我的OsgiBundleResourcePatternResolver
的方法。
- 我該說的是正確的方法嗎?有沒有更簡單的方法來做到這一點?
- 如果我是,我怎樣才能確保
XQueryComponent
可以理解一個bundle:
的URI? - 另外,是否有可能讓我確定任何駱駝組件都可以理解一個
bundle:
URI?
雖然Camel包是分開的,但Camel * context *和它的routebuilder與.xq文件位於同一個包中。我已經寫了我的問題,假設它是訪問.xq文件的Camel包的問題,但是您的答案讓我相信這不是問題。如果routebuilder和.xq在同一個包中,他們不應該已經能夠看到對方嗎? – Ski