首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WAB(OSGI)中将jars转换为bundle的用途是什么?

在WAB(OSGI)中将jars转换为bundle的用途是什么?
EN

Stack Overflow用户
提问于 2014-03-21 20:14:17
回答 1查看 680关注 0票数 1

在研究了OSGi框架之后,我开发了一个示例web application.The Web应用程序包(.war或.jar)。war文件在其WEB-INF/lib directory.These jar中包含了一堆嵌入的jar文件,jar已被转换为OSGi bundle(using maven-bundle-plugin),并按照jar之间的关系将所需的导出和导入包转换为jar。现在,我必须提到包类路径中的所有这些jars、(WEB-INF/lib)。上面的工作是因为一个包(wab也是一个包)可以在其中包含一个或多个jarfile,并使用Bundle-Classpath manifest.mf条目来指向它们。

如果我不包括包类路径中的jars,我会得到一个ClassNotFoundException

问题是,将jars转换为osgi bundles.Obviously没有意义-- WEB-INF/lib中的所有jars都是由同一个类加载器(即wab的类加载器)加载的,所以我们没有获得OSGi的主要好处--这主要是每个包类加载器的概念?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-22 07:22:40

将war放入WEB/lib是处理依赖关系的旧风格的普通java方式,而将它们放到war之外是处理依赖关系的新的OSGi方式。

通过将war的依赖项打包到WEB/lib中,您将它们视为普通jar(请记住,包也是一个jar)。因此,在这种情况下,您是对的,使用包没有多大意义。

使用wabs而不是战争的好处之一是摆脱可怕的100 Mb单块战争。与其将包打包到WEB/lib中,不如让war导入它需要的包,使用import:,并将依赖项打包到eba中。(如果您不记得war导入了它所需要的包,那么您将得到类未发现的异常,因为OSGi容器将不知道war需要这些包。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22568657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档