我正在爲我的web應用程序使用struts2,並且我想使用osgi體系結構進行服務和dao層。現在我不想將我的struts2動作包裝爲osgi包,但希望將服務和dao層打包爲包。現在任何人都可以告訴我,我的非osgi動作如何使用osgi包(service和dao層)。我想在web容器中部署我的struts2 web應用程序,以便在這種情況下web容器如何與osgi容器(我的服務和dao部署在哪裏)進行交互。請幫忙 。與osgi捆綁在一起的非osgi
3
A
回答
5
你需要在你的web容器和你的OSGi環境之間的所謂的「橋樑」。 費利克斯和Equinox都有這種能力,但對我來說,Felix的實施效果要好得多。
你基本上想要做的是:
- 添加上下文偵聽到您的ServletContext
- 開始ServletContext的時候開始的OSGi,停止時ServletContext中被摧毀。
- 通過註冊其作爲服務
- 存儲在ServletContext OSGi框架對象通過註冊它作爲一個屬性傳遞ServletContext的OSGi的上下文。
所以從OSGi的訪問Web上下文:檢索ServletContext的服務,並從那裏走。
從webcontext訪問OSGi:從ServletContext屬性中檢索OSGi框架並從那裏去。
檢查Felix Documentation,也是我對GitHub
-1
做出了表率,而回這確是行不通的。爲什麼你認爲將一半的應用程序移到OSGi應該是一個好主意?要麼你應該把它全部或全部移走。
您可能能夠將struts圖層部署到war文件中並從中訪問OSGi服務。我認爲這在處女座和阿帕奇卡拉夫是可能的。它意味着加強與OSGi結構的戰爭。例如在Karaf中,你可以使用一個wab文件,這是一個帶有Manifest的war文件。
相關問題
- 1. Osgi捆綁無法找到osgi服務
- 2. 運行OSGI捆綁項目
- 3. OSGI:通過系統捆綁使用osgi容器外的服務
- 4. Karaf OSGI捆綁在啓動時關閉
- 5. 的OSGi模塊/捆綁粒度
- 6. 管理對OSGI捆綁包的訪問
- 7. 查找OSGi捆綁軟件的策略
- 8. SWT的OSGI捆綁版本4.4.2
- 9. OSGi包在指定捆綁包上拾取系統捆綁包
- 10. OSGI - 捆綁靜態方法調用
- 11. OSGi:捆綁包/罐子是否緩存?
- 12. 番石榴osgi捆綁下載
- 13. OSGI- Bundles自動啓動/停止捆綁
- 14. JSP和OSGi:捆綁CSS和javascript
- 15. OSGI捆綁軟件依賴問題
- 16. 使用OSGi捆綁包導出Eclipse RAP戰爭與外部捆綁路徑
- 17. 如何與Tycho建立兼容Felix的OSGi捆綁包?
- 18. 從非osgi類訪問osgi包
- 19. 尋找一個良好的OSGi捆綁開發環境
- 20. osgi在felix中的捆綁包版本在aem包卸載後
- 21. Osgi捆綁在開始階段,但沒有變得活躍
- 22. 的ClassNotFoundException而JBoss的7.1.1動態類加載從OSGi的捆綁
- 23. 將Spring Security與在Karaf中運行的CXF OSGI綁定集成在一起
- 24. 包含OSGi捆綁包的其他資源
- 25. osgi blueprint如何讀取捆綁中的資源文件
- 26. 跨OSGI捆綁包的XSLT依賴關係
- 27. Fabric8:用於openshift和kubernetes的OSGI捆綁包java客戶端
- 28. OSGi中的JSP:如何從捆綁包加載TLD?
- 29. OSGI捆綁包,用於從屬罐的反射
- 30. 在osgi應用程序中使用非osgi庫
可以請給我一些鏈接到我可以遵循的教程嗎?這將是非常有幫助的 – user1147070 2012-07-24 10:46:46
不是真的,felix bridge文檔是我能找到的。這不是一個真正的教程,但它確實解釋了它的工作原理。遺憾的是,它並不能幫助你獲得一個功能性應用程序,它只能讓你知道你有一個正在運行的OSGi框架,這個框架不能做太多。從那裏開始,唯一可以做的就是顯式安裝新的bundle(使用BundleContext.installBundle)。這隻適用於小型項目。 – 2012-07-24 16:19:35
我在示例中做了什麼(在FrameworkService2類中)是通過編程方式遍歷WEB-INF/bundles目錄中的所有jar文件,並將它們安裝到框架中,因此您可以通過簡單的方式添加包。 – 2012-07-24 16:21:16