2013-05-15 47 views
0

我正在開發基於OSGI的應用程序,它部署到卡拉夫容器。 Karaf具有自動部署功能,因此將軟件包複製到karaf/deploy目錄應自動將該軟件包部署到容器中。更多的往往不是,但是,我越來越相似,當我複製捆綁到deploy目錄下的一個錯誤:無法自動部署到卡拉夫軟件包

org.osgi.framework.BundleException: Bundle symbolic name and version are not unique: legacy-services-impl:8.0.0.ALPHA-SPRINT9-SNAPSHOT 
    at org.apache.felix.framework.BundleImpl.createRevision(BundleImpl.java:1225) 
    at org.apache.felix.framework.BundleImpl.<init>(BundleImpl.java:95) 
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2979) 
    at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:165) 
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.installOrUpdateBundle(DirectoryWatcher.java:1030)[6:org.apache.felix.fileinstall:3.3.11.fuse-71-047] 
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:944)[6:org.apache.felix.fileinstall:3.3.11.fuse-71-047] 
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.install(DirectoryWatcher.java:857)[6:org.apache.felix.fileinstall:3.3.11.fuse-71-047] 
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:483)[6:org.apache.felix.fileinstall:3.3.11.fuse-71-047] 
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:291)[6:org.apache.felix.fileinstall:3.3.11.fuse-71-047] 

而是重新部署已部署捆綁,容器告訴我,我試圖部署一個重複的包。

Karaf確實已經部署了該捆綁包,但爲什麼不重新部署該捆綁包?什麼導致了這種行爲?如何在自動部署中避免這種錯誤?

謝謝

邁克爾

+0

你使用的是哪個版本?順便說一句。在用戶列表上詢問這個問題通常會給你一個更快更好的反饋:-) –

+0

Achim,這是Karaf與Fuse(2.3.0.fuse-71-047)捆綁在一起。我如何訪問用戶列表? –

+0

卡拉夫用戶列表可在以下網址獲得:http://karaf.apache.org/index/community/mailing-lists.html –

回答

0

我懷疑你的包不正確停止。這可能是卡拉夫認爲它仍然存在的原因。您的激活器中是否有一些代碼在停止時執行?也許你也在運行一些線程。您應確保激活器的停止方法正常工作,並乾淨地關閉所有資源並停止捆綁的所有線程。