我正在为我的web应用程序使用struts2,我希望将osgi架构用于服务和dao层。现在,我不想将我的struts2操作包装为osgi,而是希望将服务和dao层打包为bundle。现在谁能告诉我我的非osgi操作如何使用osgi捆绑包(服务和道层)。我想在web容器中部署我的osgi应用程序,那么在这种情况下,web容器将如何与struts2容器(部署我的服务和dao的位置)交互。请帮帮忙。
发布于 2012-07-23 21:13:35
你需要在你的web容器和你的OSGi环境之间建立一个所谓的“桥梁”。Felix和Equinox都有这种能力,但对我来说,Felix实现的效果要好得多。
你基本上想要做的是:
因此,要从OSGi访问web上下文:检索ServletContext服务,并从那里开始。
要从webcontext访问OSGi :从ServletContext属性检索OSGi框架并从那里开始。
检查一下Felix Documentation,我在GitHub上也做了一个例子
发布于 2012-07-23 21:15:34
这肯定是行不通的。为什么您认为将应用程序的一半迁移到OSGi上应该是个好主意?要么将其全部移动,要么不移动。
您可以在war文件中部署struts层,并从中访问OSGi服务。我认为这在处女座和Apache Karaf是可能的。这意味着加强与OSGi结构的战争。例如,在Karaf中,您可以使用wab文件,它是一个带有Manifest的war文件。
https://stackoverflow.com/questions/11610764
复制相似问题