我们想升级我们的Spring依赖项,但是服务器找不到资源的问题。没有进行任何代码更改,这在3.2.1
中工作正常。
我们像这样注册处理程序
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/kjernejournal.html").addResourceLocations("/kjernejournal.html").setCachePeriod(0);
}
日志
o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/kjernejournal.html] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
但是这会在以后失败,并出现以下错误。
12:07:04.520 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping - Mapping [/kjernejournal.html] to HandlerExecutionChain with handler [org.springframework.web.servlet.resource.ResourceHttpRequestHandler@75288586] and 1 interceptor
12:07:04.520 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.s.web.servlet.DispatcherServlet - Last-Modified value for [/hpp-webapp/kjernejournal.html] is: -1
12:07:04.520 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.s.w.s.r.ResourceHttpRequestHandler - Trying relative path [/kjernejournal.html] against base location: ServletContext resource [/kjernejournal.html]
12:07:04.520 [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG o.s.w.s.r.ResourceHttpRequestHandler - No matching resource found - returning 404
该文件确实存在于WAR文件的根目录中。
关于从哪里开始的任何想法?
答案 0 :(得分:0)
找出问题所在。
当我们注册时
registry.addResourceHandler("/kjernejournal.html").addResourceLocations("/").setCachePeriod(0);
而不是
registry.addResourceHandler("/kjernejournal.html").addResourceLocations("/kjernejournal.html").setCachePeriod(0);
工作正常。所以问题似乎是resourceLocations
指向文件而不是目录。来自ResourceHandlerRegistration
JavaDoc:
添加一个或多个资源位置,从中提供静态内容。每个位置都必须指向一个有效的目录。
奇怪的是它之前有效,但是......