我正在使用spring boot 2.0.1.RELEASE。
我正在将应用程序从spring(WAR)迁移到spring-boot。它使用GWT,它使用依赖于getServletContext().getResourseAsStream()
方法的servlet按预期工作。
我已在https://github.com/spring-projects/spring-boot/issues/12868上传了一个可重现的项目。
当对http://localhost:8080/mymodule/afile.rpc执行GET请求时,您可以看到文件被返回,但是如果执行http://localhost:8080/mymodule/dispatch,则执行servlet,servlet使用getServletContext().getResourseAsStream()
返回相同的文件,但在这种情况下返回null。
有什么想法吗?
我之前看过类似的问题,并标记为已解决,但也许在春季启动2.0.1再次失败。类似问题:#8525
答案 0 :(得分:1)
从类路径提供静态资源:static是一个Spring MVC 由Spring Boot自动配置的功能。 servlet容器 和servlet上下文一无所知是可以预期的 尝试通过servlet上下文访问该文件不起作用。
如果您希望servlet容器提供静态内容,那么 应该将它放在servlet容器可以找到它的位置。 例如,在打包为war文件的应用程序的根目录
我最后调整了servlet以使用类加载器而不是servlet上下文来选择文件。