2015-05-14 63 views
0

我試圖將我的OSGi包部署到Karaf中。當使用bundle:install命令,得到下面的錯誤消息部署束:Apache Karaf Bundle的符號名稱和版本並非唯一

Caused by: org.osgi.framework.BundleException: Bundle symbolic name and version are not unique: servicebus:5.2.1.SNAPSHOT 
    at org.apache.felix.framework.BundleImpl.createRevision(BundleImpl.java:1305)[org.apache.felix.framework-4.4.1.jar:] 
    at org.apache.felix.framework.BundleImpl.<init>(BundleImpl.java:112)[org.apache.felix.framework-4.4.1.jar:] 
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2907)[org.apache.felix.framework-4.4.1.jar:] 
    at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:165)[org.apache.felix.framework-4.4.1.jar:] 
    at org.apache.karaf.bundle.command.Install.execute(Install.java:77)[63:org.apache.karaf.bundle.core:4.0.0.M2] 
    ... 11 more 

以下是在pom.xml定義的屬性:

<groupId>com.google.process</groupId> 
<artifactId>processCheck</artifactId> 
<packaging>bundle</packaging> 
<version>5.2.1-SNAPSHOT</version> 

我定義捆綁包的符號名稱爲servicebus

<Bundle-SymbolicName>servicebus</Bundle-SymbolicName> 

你能幫我解決這個問題嗎?

回答

1

可能它已經安裝在Karaf的緩存中。嘗試刪除$karaf.home/data文件夾並重新安裝。

0

嘗試找出它是否已經被

la | grep -i "servicebus" 

安裝,如果已安裝,只是發出一個

bundle:update <id> 

其中ID是與第一個命令中的ID。 如果找不到任何包,請按Jorge Martinez所述。 刪除數據文件夾。 你不妨做這樣一個shell命令(如果你不使用窗口;))

system:shutdown -r -cc 

,如果你想確保完整的數據文件被清除,其中-cc代表乾淨緩存目錄, (包括日誌)

system:shutdown -r -ca