2011-04-07 64 views
4

我需要一個建議。 我想模塊化我現有的Java Web應用程序。
試圖與maven做它,它的工作有點。
我設法在一個模塊('核心')中分離服務層,其他兩個網絡應用程序使用相同的核心模塊。使用OSGi模塊化現有Web應用程序

現在我想用OSGi嘗試一下,我想讓OSGi參與模塊化,以便在需要時使用它。
我在這裏幾個問題:
1.如何使用OSGi模塊化我的應用程序的任何部分,如何開始使用它?有很多例子可以從OSGi開始,但沒有一個是在現有應用程序中做的。
2.如何在tomcat服務器上使用它?我知道我需要一個OSGi容器(Equinox,Apache Felix,..)來使用OSGi,但是如何設置Tomcat和OSGi容器一起工作?

如果任何人有一些建議或可以鏈接我一些有用的教程,
我非常感激。

在此先感謝,
米洛斯。

回答

1

我推薦Spring Dynamic Modules(http://www.springsource.org/osgi)。它的優點是你不必爲OSGi的所有令人討厭的細節弄髒手,並且可以通過Spring IOC使用它。

即使您想要處理OSGi,也並不意味着您必須使您的現有應用程序能夠識別OSGi。兩種以下規格可以幫助你從抽象的OSGi的API您的組件:

  1. OSGi聲明服務(見http://www.aqute.biz/Snippets/HelloWorldComponent
  2. OSGi的藍圖(類似於春季DM)

祝你好運!

+0

感謝您的快速回復Laurent!我正在閱讀有關Spring DM的文章。我對這些其他內容(OSGi Declarative Services和OSGi Blueprint)不太瞭解,並且這個「即使你想要處理OSGi,也並不意味着你必須讓你現有的應用程序能夠識別OSGi」我的英語,但你可以多一點關於這個,我只是不明白:(先行先感謝! – trivunm 2011-04-07 19:43:34

+0

@ user79163這兩個規範允許你將你的組件與OSGi集成,但不要求你的組件使用任何OSGi的接口或類,這是一個很大的優勢,因爲你可以從OSGi提供的模塊中受益,而不必修改代碼使其與OSGi相關。但是請閱讀Spring DM的相關知識,並且希望能夠得到掌握好大圖。 – 2011-04-08 07:58:08

2

使用OSGi需要的所有的OSGi的特點有深入的瞭解,尤其是對不同類加載行爲。 你需要考慮的是OSGi真的有益於你的應用程序。如果您以廣泛的方式使用Class.forName,則會出現問題。還有許多第三方庫不易與OSGi一起使用。

因此,請務必在更改代碼中的任何內容之前瞭解OSGi。我會推薦深入OSGi和/或OSGi在行動學習和理解OSGi。

不要誤解我的意思,OSGi是一個很好的技術,但它比一見鍾情要困難得多。 如果您的應用程序完全使用OSGi,則不需要Tomcat,OSGi容器是OSGi應用程序的運行時,因爲Tomcat服務器是另一種運行時環境。 如果您需要與Tomcat服務器通信,則可以使用JMS或任何類似的東西。 看看OSGi遠程服務