2016-02-27 20 views
-1

我有一個OSGI包。該包嵌入(使用)包含一個類的jar。這個嵌入類可以是OSGI組件嗎?我試圖用@Component對它進行註釋,但它不起作用。可以將類嵌入到OSGI包中作爲一個組件嗎?

+0

簡短的答案是「是」,只要該類可以加載,並且描述符在OSGI-INF下可見。你能定義「不起作用」嗎?或告訴我們你做了什麼? –

+0

爲什麼要嵌入一個包含組件的jar?爲什麼不是一個捆綁軟件並單獨安裝? –

+0

我認爲問題在於Bundle-Classpath中的jar中的類沒有被bnd處理,以將@Component註釋映射到組件描述XML文件中。我會懷疑bnd只處理包中直接在DS註釋中使用的類。 –

回答

1

聲明式服務在運行時只要求:

  1. 類是由包加載和
  2. XML描述被包含在該軟件包的任何地方,並與來自Service-ComponentMANIFEST.MF引用。

所以,一個嵌入JA​​R中的類可以是一個組件。 JAR必須列在Bundle-ClassPath上,並且描述符必須出現在捆綁JAR中。

話雖如此,這是一個奇怪的要求。爲什麼要將組件嵌入到捆綁包中的JAR中,而不是將它們直接放入捆綁包中?組件非常適合您的軟件包的入口點。

相關問題