【问题标题】:Embed Grizzly (glassfish) Servlet Container with Spring Boot Java使用 Spring Boot Java 嵌入 Grizzly (glassfish) Servlet 容器
【发布时间】:2017-11-17 19:58:28
【问题描述】:

Spring boot 默认使用 Tomcat 作为内部嵌入式 Servlet 容器。 它还支持 Jetty 和 UnderTow。

我已经使用 spring boot 构建了一个 Restful 应用程序。但现在我需要将它部署在 Grizzly (Glassfish) Servlet Container 上。

我如何嵌入我的应用程序以在 grizzly 上运行,因为 spring 不支持它。

https://github.com/spring-projects/spring-boot/issues/5015.

请提供帮助,因为我对此主题进行了很多研究,但我找不到任何链接来显示如何为 spring 支持的 spring boot 应用程序嵌入新的 Servlet 容器。

谢谢

【问题讨论】:

  • 如果您在问题跟踪器中搜索“Grizzly”,您会发现 the support was requested 的已关闭问题,我们拒绝了它。简而言之,Spring Boot 不支持 Grizzly,我不知道有第三方主动支持它。
  • @StephaneNic​​oll 所以如果我们想将我们的引导应用程序部署到一个 grizzly servlet,那么另一种方法是什么,我们是否应该进行战争然后部署?我想通过更改来嵌入 servlet 是否有可能请建议

标签: java spring servlets spring-boot grizzly


【解决方案1】:

Grizzly website 声明 Grizzly 的 servlet 支持不完整:

这不是 Servlet 兼容的实现,因此,并非典型 Servlet 容器公开的所有功能都可以在此处使用。

我还没有看到任何扩展这些缺失功能的地方,但是如果不填补 Grizzly 的 servlet 支持中的一些空白,您尝试做的事情很有可能是不可能的。

假设有可能,您需要编写 Spring Boot 的 EmbeddedServletContainerFactoryEmbeddedServletContainer 接口的特定于 Grizzly 的实现。这是一项相当大的工作量,因此,在开始之前,我会问自己,将 Grizzly 用作嵌入式 servlet 容器与使用 Jetty、Tomcat 或 Undertow 相比,您将获得什么开箱即用的支持。

如果您决定解决这个问题,阅读 Jetty、Tomcat 和 Undertow 的现有实现的源代码是了解需要做什么的最佳方式:

【讨论】:

    【解决方案2】:

    正如@Andy 所指出的,不支持 Spring Boot 和 Grizzly 。 最后我搬到了 Spring MVC 上。

    这是我用 grizzly 嵌入 Spring MVC 的工作存储库。 希望它可以帮助某人。

    Link

    【讨论】:

      【解决方案3】:

      现在有一个针对 Grizzly 的 Spring Boot 启动器的第三方实现,它具有针对 Grizzly 的 Spring Boot 的 EmbeddedServletContainerFactoryEmbeddedServletContainer 类的特定实现。

      此外,它还通过Tomcat's Jasper JSP 引擎提供JSP 支持,只需指定一个附加依赖项即可。您可以在 GitHub 找到该项目,它也列在 Spring Boot starters 列表中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-12
        • 2017-05-02
        • 2013-12-28
        • 1970-01-01
        相关资源
        最近更新 更多