我的服务器出了些问题所以我构建了我的portlet并在liferay portlet容器上进行了本地测试。我使用portlet 2.0 API for Java和JSR 286标准。 portlet是使用Spring框架构建的,它们可以在我的本地机器上运行。
我的问题是如何将一个基于Spring的portlet转换为一个OSGI包?我在当前的portlet中需要调整什么才能满足OSGI包的需要?
我正在使用eclipse来开发portlet和ant来将它们打包到war文件中,并且不知道如何使用ant将它打包到osgi bundle jar中。
谢谢!
答案 0 :(得分:3)
您应该使用bnd ant任务将插件打包为wab。请参阅http://www.aqute.biz/Bnd/Ant。
这里有一些例子:https://github.com/rotty3000/liferay-plugins/tree/OSGi/portlets/osgi-admin-portlet
答案 1 :(得分:0)
您需要分解应用程序并决定如何使用OSGi模块层。例如,导出API(JRS-API)和其他导出它们的捆绑包之一。
如果您要进入该路径,最初您将遇到ClassNotFounds和ClassCastsException等问题。但是,一旦你度过这段时间,你将能够利用OSGi服务/多个版本等酷炫功能。
Eclipse为OSGi包开发提供了出色的工具支持。恕我直言,你没有必要运行蚂蚁任务。如果您使用的是maven,那么您可以使用felix-bundle插件来创建捆绑包。
另一种选择是创建一个包含所有依赖项的巨大包 - 内联。它会工作,但你再次使用OSGi的力量。 :)
HTH。