gpt4 book ai didi

tomcat - 难以理解整个 OSGi 网络生态系统

转载 作者:行者123 更新时间:2023-11-28 21:43:59 25 4
gpt4 key购买 nike

我对整个 Java 和 OSGi 世界还很陌生,我很难理解 OSGi 网络应用程序的生态系统。

更准确地说,我目前正试图了解生态系统的所有部分是如何相互关联的:

  • OSGi 框架(例如 Apache Felix、Equinox、Knoplerfish)
  • OSGi 运行时(例如 Spring DM 服务器、Pax Runner、Apache Karaf)
  • Web Extender(例如 Pax Web Extender、Spring Web Extender)
  • Web 容器(例如 Apache Tomcat、Jetty)

为了让您直观地了解我对他们关系的实际理解,请查看这张图片:

alt text

据我所知,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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com