当前位置: 首页 > 知识库问答 >
问题:

通过Jetty和Jersey在Spring Boot提供静态内容

乌学博
2023-03-14

我正在用< code>Jetty服务器运行一个Spring Boot应用程序。API由< code>Jersey servlet提供服务。静态内容放在< code>src/main/static和< code > src/main/private-static 中。

问题#1未提供src/main/静态中的静态内容

src/主/静态中的内容是公开的,可以自由访问。据此:https://docs.spring.io/spring-boot/docs/1.3.8.RELEASE/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content Spring启动应自动提供静态内容,但不会。

问题#2如何将这个定制servlet的静态内容目录设置为< code > src/main/private-static ,该servlet在提供文件之前检查身份验证。

我创建了另一个< code>servlet来提供带身份验证的静态内容

@Bean
public ServletRegistrationBean<HttpServlet> privateStaticContent() {
    return new ServletRegistrationBean<>(new HttpServlet() {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
            int status = isAuthenticated(req) ? 200 : 401;

            resp.setStatus(status);
        }
    }, "/private-static/*");
}

基本上这个servlet应该服务于目录< code > src/main/private-static 中的文件,但是我不确定如何以及在哪里配置它。

问题#3为了让泽西服务于/apiendpoint,我在application.properties中添加了这个。

server.servlet.context-path=/api

但是,这使得所有 servlet 都使用此 /api endpoint。如何仅针对泽西岛 servlet 而不是为其他服务器配置此功能。有没有类似服务器的东西

共有1个答案

金伟
2023-03-14

源码/主/爪哇/

< code>src/main/java树仅用于< code>*。java,没有别的。

也许您应该使用< code>src/main/resources/

 类似资料:
  • 我无法访问静态内容(angular app),甚至无法访问简单的索引。来自spring boot的html文件。我一直收到404错误。Spring没有为我提供这些静态文件。自从升级到Spring Boot 2.2.4后,我就遇到了这个问题。我必须升级以应对Zip64问题。 我的application.properties里有这样一句话: 我也有自己的staticResourceConfigurat

  • 问题内容: 该应用程序使用JDK 8,Spring Boot和Spring Boot Jersey启动程序,并打包为WAR(尽管它是通过Spring Boot Maven插件在本地运行的)。 我想做的是将我在运行中(在构建时)生成的文档作为欢迎页面。 我尝试了几种方法: 通过按照此处所述配置 适当的init参数,让Jersey提供静态内容 引入以便将生成的HTML文档作为欢迎文件列出。 这些都没有

  • 该应用程序使用JDK8、Spring Boot和Spring Boot Jersey starter,并被打包为WAR(尽管它是通过Spring Boot Maven插件在本地运行的)。 我想做的是将我生成的文档(在构建时)作为欢迎页面。 我尝试了几种方法: 通过在中配置正确的init参数,让Jersey提供静态内容,如下所述 引入以便将生成的HTML文档列为欢迎文件。 这些都没有成功。 我希望避

  • 有没有任何方法使Spring靴与泽西服务静态内容?我已经学习了一系列关于将Swagger集成到Spring Boot应用程序中的教程和代码示例。我可以让它交付基本的Swagger.json,但我不能让Swagger UI工作。 正如我所说的,我的应用程序运行良好,http://localhost:8080/swagger.json向我显示了普通的json文档,但http://localhost:8

  • 类似于另一个问题(参见过滤静态内容Jersey),我想从Jetty提供静态内容。在浩瀚的互联网上散布着几个类似的问题,但大多数都不涉及Guice,而那些涉及Guice的问题已经完全过时了。 我有一个现有的服务,使用泽西(1.12)和Guice(3)与以下: < code>MyGuiceConfig看起来像这样: 当我使用 时,我的服务按预期工作。但是,任何对静态内容的请求都会产生404。 如何在不

  • 问题内容: 我正在为Django使用apache + mod_wsgi。 并且所有css / js / images都通过提供。 出于某种奇怪的原因,当其他人/朋友/同事尝试访问该网站时,jquery / css不会为他们加载,因此页面看上去很混乱。 我的html文件使用这样的代码- 我的nginx配置是这样的 有一个目录,其中有相应的&目录。 奇怪的是,当我访问它们时页面显示正常。 我已经清除了