我的意思是某些方面,例如通過不同類加載程序隔離不同版本的相同工件,如.Net允許通過不同AppDomain隔離程序集。OSGI是否解決了Java中AppDomain的缺失?
回答
我不這麼認爲。 OSGi是一種在結構上定義和實施應用程序不同部分之間的邊界和依賴關係的方法。
它不是一個應用程序容器,其中不同的應用程序可以或多或少不知道彼此,比如像Tomcat這樣的servlet容器。
有兩種解決方案,例如Apache Karaf,它基本上是基於OSGi的應用程序容器。在這些容器中,每個應用程序都有自己的OSGi環境。
等等,卡拉夫還沒有實現OSGi子系統,是嗎?那麼在什麼情況下,Karaf提供了對核心OSGi提供的「應用程序」的額外隔離? –
我認爲卡拉夫3.0與其最新版本的白羊座可以做到這一點(但還沒有嘗試過)。我的意思是你可以部署獨立的osgi子實例,也就是說,如果我錯了,就糾正我,類似於.Net AppDomains。 –
我不這麼認爲。我相信(但可能是錯誤的),.NET中的AppDomains不僅包含模塊加載隔離,還包括內存隔離,CPU使用等。由於JVM的限制,OSGi中沒有這樣的東西。 –
@弗蘭克
「阿帕奇Karaf,這基本上是一個基於OSGi應用程序容器,在這些容器中的每個應用程序都有自己的OSGi環境。」
我不這麼認爲。在Karaf(或ServiceMix)中部署OSGi組件時,無法指定特定的應用程序。例如比如:osgi:install componentX.jar應用程序1
所以看起來好像沒有應用程序邊界。所有部署在同一個SMX或Karaf實例中的OSGi模塊可以互相看到並導入彼此的功能。
對於SMX,這是一個ESB,這很爛....
任何人都可以證實這一點?
另外...一些OSGi模塊只是庫,一些是應用程序(例如,聽一個端口做某事)。
我認爲一切都在1個JVM上運行...
有人請確認這也...
AppDomain的是別的東西。 OSGi不提供這個概念。我們需要它嗎?
卡拉夫有一個'實例'和'特徵'的概念,它提供了邊界。與AppDomain不同。我不確定每個實例都有它自己的JVM。 – atam
- 1. 如何解決osgi包內缺失的約束?
- 2. 在python中是否有類似於osgi試圖在java中解決的要求?
- 3. 解決表命令中的缺失值
- 4. Netbeans解決缺失的服務器
- 5. 如何解決這些缺失的庫?
- 6. 是否有可能創建OSGI服務與注入解決
- 7. IIS中是否需要AppDomain?
- 8. OSGi診斷組件的缺失依賴
- 9. SSRS2008中缺乏指標是否有解決方法?
- 10. 城市遍歷 - 這個案例在解決方案中缺失了嗎?
- 11. 2.7中的Scala類型失敗:是否有解決方法?
- 12. 的Java PARAMS解決不了的Eclipse
- 13. Python中是否存在「缺失」函數?
- 14. 域名是否會從HttpContext.Current.User.Identity中缺失?
- 15. 尋求數據集中缺失值的解決方案
- 16. 如何使用CakePHP 3解決UserController中的缺失方法?
- 17. 如何解決android(NDK)中futimes()的缺失?
- 18. 是否預定義了一個新的appdomain程序集?
- 19. 解決@Value失敗 - 彈簧的java
- 20. 如何檢查解決方案中是否使用了方法?
- 21. 是否Java的真的比直接瞭解Java編程更好
- 22. SetProgressBarIndeterminateVisibility缺乏瞭解
- 23. 乾淨的解決方案,爲Python列表解析中的缺失值
- 24. 如何解決Java中缺少抽象字段的問題?
- 25. 是否有一種解決方法:「除了KeyboardInterrupt之外的」try:input():「
- 26. 瞭解Java中
- 27. elasticsearch/lucene是否爲fieldcache中的缺失值增加了內存開銷?
- 28. 如何在eclipse中爲openbravo解決Junit.jar庫缺失錯誤
- 29. 瞭解和解決ConcurrentModificationException的
- 30. ICS文件中是否存在缺少Olsen TZ TZID格式的解決方法
您的問題目前需要知道.Net AppDomains和OSGi。這種技能組合很少。我對OSGi有很多瞭解,但對.Net很少,所以如果你描述了Java中缺少AppDomain的特定功能,那麼我可以告訴你OSGi是否合適。 –