- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对整个 Java 和 OSGi 世界还很陌生,我很难理解 OSGi 网络应用程序的生态系统。
更准确地说,我目前正试图了解生态系统的所有部分是如何相互关联的:
为了让您直观地了解我对他们关系的实际理解,请查看这张图片:
据我所知,OSGi 框架是 OSGi 规范的一个实现。运行时是一种在 OSGi 规范之上添加附加功能的发行版,例如日志记录。由于 OSGi 和 Tomcat 等 Web 容器的类路径机制似乎存在一些差异,因此您需要某种翻译器。这部分由“Web Extender”处理。
你能为我澄清一下这整件事吗?我的理解是否正确?
最佳答案
OSGi 是 API 和交互软件模块打包方面的标准。这类似于 JPA 或 Java EE 等其他 API 标准。
OSGi 运行时是遵循 OSGi 标准的服务器,它是标准的实现。你提到了一些常见的:Knopflerfish、Eqinox。这些可以让您运行 OSGi 包。
Web 容器通常是指 Java EE(servlet)的特定于 Web 的部分的实现。 servlet 标准也定义了一个 API 和包装,就像 OSGi 一样,只是不同而已。
您需要一台服务器来运行您的 Java EE 网络应用程序。您将您的应用程序打包为 Java Web 存档 (WAR),并要求您的应用程序服务器启动它。正如您提到的,有多种服务器,如 Tomcat、Jetty,但也有更大的服务器,它们涵盖了 Java EE 标准的大部分内容,如 Glassfish 和 JBoss。
Web 扩展器试图将 servlet 标准与 OSGi 统一起来。通过将一些特定于 OSGi 的数据添加到您已经打包的 WAR,WAR 将由您的 OSGi 运行时自动解析和启动。您的 WAR servlet 将由 Web 扩展程序发布到 OSGi http 服务。借助 Web 扩展程序,您可以运行标准 OSGi 应用程序以及仅使用 OSGi 运行时的 WAR,而无需像 Tomcat 这样的 Java EE 兼容服务器。
关于tomcat - 难以理解整个 OSGi 网络生态系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2567830/
我想模拟这个函数: function getMetaData(key) { var deferred = $q.defer(); var s3 = vm.ini
我是一名优秀的程序员,十分优秀!