2011-12-15 42 views
3

我的服務器出現了一些問題,所以我構建了我的portlet並在liferay portlet容器上進行了本地測試。我使用了用於Java和JSR 286標準的portlet 2.0 API。這些portlet是使用Spring框架構建的,它們在本地機器上工作。如何將Liferay portlet轉換爲OSGI包?

我的問題是如何將基於Spring的portlet包裝到OSGI包中?我在當前的portlet中如何調整以適應OSGI包的需求?

我使用eclipse開發portlet和ant來將它們打包成war文件,但不知道如何使用ant將它打包到osgi bundle jar中。

謝謝!

+0

請問哪個應用服務器,您需要的插件是一個OSGi包?我問,因爲我正在致力於liferay的osgi支持,並且已經解決了一些包裝問題,但它有點特殊。 – Ray 2011-12-17 21:16:19

+0

我正在一個定製的服務器上工作,基於我認爲的冥王星。我沒有做到這一點,我只是開發它的捆綁包,所以我的服務器信息是有限的 – drvido 2011-12-20 13:13:46

回答

0

您需要分解您的應用程序並決定如何使用OSGi模塊層。例如其中一個導出API(JRS-API)的軟件包和其他導入它們的軟件包。

如果你要走這條路,最初你會面臨諸如ClassNotFounds和ClassCastsException之類的麻煩。但是一旦你過了這段時間,你將能夠使用酷的功能,如OSGi服務/多個版本/等。

Eclipse爲OSGi包開發提供了很好的工具支持。恕我直言,你不必運行螞蟻的任務。如果您使用的是maven,那麼您可以使用felix-bundle插件來創建捆綁包。

另一種選擇是創建一個包含所有依賴項的大型包 - 內聯。它會起作用,但是你又沒有使用OSGi的力量。 :)

HTH。