栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

OSGI创建模块化Web应用程序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OSGI创建模块化Web应用程序

在OSGi的规范详细介绍了WAB(Web存档包)格式。

而大同的Web提供了WAB /
WAR大力支持的webapps(PAX Web上的春分,菲利克斯等运行正常)

使用pax web,您可以通过ServletContext获得BundleContext,例如:

BundleContext bundleContext = (BundleContext) getServletContext().getAttribute("osgi-bundlecontext");

对于您提到的用户驱动的可插拔性,建议您为插件包提供一些服务接口,以使其实现,并在您的Web应用程序中使用ServiceTracker监听其注册(除非您使用的是声明式服务)。您还可以轻松地从上载servlet
安装捆绑软件。

我猜上载插件的用户必须先登录并获得授权,所以此时会解决安全问题。


编辑:由于评论字段中的空间不足,因此在此处回复评论

抱歉,我误解了您的问题-
您有一个现有的webapp容器,并且想部署具有OSGi功能的WAR?如果是这样的话,那么既可以使用ServletBridge如其他人所说的或嵌入OSGi框架到你的战争(这是比较容易的,看到这个为例)。

您甚至可以通过尝试从ServletContext获取BundleContext来使其成为可选对象,如果返回的结果为null,则启动您自己的嵌入式框架。这样,它将在本机OSGi容器(例如Glassfish)或Java
EE应用服务器中运行。

否则,PaxWeb是HttpService和WebApp OSGi规范的实现,但是具有许多扩展使生活变得更轻松-但您可以将其部署到OSGi容器中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号