簡體   English   中英

OSGi中的傳遞依賴

[英]Transitive dependencies in OSGi

我在運行時得到一個NoClassDefFoundError ,我認為"uses"指令會避免這種情況,因為我認為它創造了傳遞性(如果我錯了,請糾正我)。 這是我的配置:

Bundle 1 
  Export-package A

Bundle 2 
  Export-package B, uses "A"
  Import-package A

Bundle 3
  Import-package B

現在,當Bundle 3調用B中的一個類時會發生異常,而B又調用A中的類。 基於控制台,我可以看到BundleClassLoader在bundle 3中查找類(換句話說,就其本身而言),但在Bundle 1中找不到它。 如果我強制BND導入捆綁3中的A一切正常,但它看起來太費力了。 我覺得我錯過了什么。 equinox不應該使用清單中的信息來設置bundle classpath嗎? 或者在最壞的情況下,BND不應該檢測3對1的依賴關系並在3的清單中導入包A?

我的所有捆綁包都是active ,我沒有uses約束違規

捆綁2也必須導入A.使用A表示任何導入我的B並且還導入A的捆綁包必須導入與我相同的A. 由於bundle 2不導入A,因此不起作用。 此外,捆綁3需要導入A,因為B使用A.任何B的導入者也是A的用戶,因此必須導入A.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM