资源处理程序 Spring 异常:org.springframework.web.servlet.DispatcherServlet noHandlerFound
resource handler Spring exception: org.springframework.web.servlet.DispatcherServlet noHandlerFound
我一直在搜索和搜索,但找不到适合我遇到的异常的解决方案。我正在使用 java、spring mvc、hibernate 和 MySQL 构建网络应用程序。我使用了 Spring 安全性,因为只有授权用户才能使用该网络应用程序。我正在使用 css (bootstrap) 使其看起来不错,但问题是,在访问资源时出现以下异常:
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/css/alfen.css] in DispatcherServlet with name 'dispatcher'
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/img/logo.jpg] in DispatcherServlet with name 'dispatcher'
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/css/bootstrap.css] in DispatcherServlet with name 'dispatcher'
防止这种情况的唯一方法(我目前发现的)是在我的资源处理程序中对每条路径进行显式编码
// Grants access to resources
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
这是我的安全配置
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/css/**", "/js/**", "/images/**").permitAll().anyRequest().authenticated()
.antMatchers("/resources/**").permitAll().anyRequest().authenticated()
.antMatchers("/admin/**").access("hasRole('ADMIN')")
.antMatchers("/db/**").access("hasRole('DBA')")
.antMatchers("/lead/**").access("hasRole('LEAD')")
.antMatchers("/responsible/**").access("hasRole('RESPONSIBLE')")
.and().formLogin().loginPage("/login").successHandler(customSuccessHandler)
.usernameParameter("ssoId").passwordParameter("password")
.and().csrf()
.and().exceptionHandling().accessDeniedPage("/Access_Denied");
}
干杯,伙计们,帮助我 out/pointing 我朝着正确的方向前进! (如果这是一个重复的问题,我深表歉意)
我尝试过的解决方案是:
// Grants access to resources
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("classpath:/resources/");
registry.addResourceHandler("/**/resources/**".addResourceLocations("/resources/)"
}
以及几种更改安全配置的方法,但我对所有人开放 ideas/suggestions!
所以,在我的代码中进行了更多的愚弄之后。我找到了我的问题的答案,而且非常简单。
在我 link 到 jsp 中的资源之前是这样的:
<link href="resources/css/bootstrap.css" rel="stylesheet" media="screen" />
<link href="resources/css/alfen.css" rel="stylesheet" media="screen" />
这不是它应该的样子。这就是与众不同的原因:
<link href="${pageContext.request.contextPath}/resources/css/bootstrap.css" rel="stylesheet" media="screen" />
<link href="${pageContext.request.contextPath}/resources/css/alfen.css" rel="stylesheet" media="screen" />
现在一切正常。因此,为了完成,我想将其发布为可能的解决方案之一,当您可能遇到同样的问题时!
我一直在搜索和搜索,但找不到适合我遇到的异常的解决方案。我正在使用 java、spring mvc、hibernate 和 MySQL 构建网络应用程序。我使用了 Spring 安全性,因为只有授权用户才能使用该网络应用程序。我正在使用 css (bootstrap) 使其看起来不错,但问题是,在访问资源时出现以下异常:
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/css/alfen.css] in DispatcherServlet with name 'dispatcher'
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/img/logo.jpg] in DispatcherServlet with name 'dispatcher'
aug 25, 2016 10:41:38 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/ToolManagementSystem/admin/resources/css/bootstrap.css] in DispatcherServlet with name 'dispatcher'
防止这种情况的唯一方法(我目前发现的)是在我的资源处理程序中对每条路径进行显式编码
// Grants access to resources
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
这是我的安全配置
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/css/**", "/js/**", "/images/**").permitAll().anyRequest().authenticated()
.antMatchers("/resources/**").permitAll().anyRequest().authenticated()
.antMatchers("/admin/**").access("hasRole('ADMIN')")
.antMatchers("/db/**").access("hasRole('DBA')")
.antMatchers("/lead/**").access("hasRole('LEAD')")
.antMatchers("/responsible/**").access("hasRole('RESPONSIBLE')")
.and().formLogin().loginPage("/login").successHandler(customSuccessHandler)
.usernameParameter("ssoId").passwordParameter("password")
.and().csrf()
.and().exceptionHandling().accessDeniedPage("/Access_Denied");
}
干杯,伙计们,帮助我 out/pointing 我朝着正确的方向前进! (如果这是一个重复的问题,我深表歉意)
我尝试过的解决方案是:
// Grants access to resources
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("classpath:/resources/");
registry.addResourceHandler("/**/resources/**".addResourceLocations("/resources/)"
}
以及几种更改安全配置的方法,但我对所有人开放 ideas/suggestions!
所以,在我的代码中进行了更多的愚弄之后。我找到了我的问题的答案,而且非常简单。
在我 link 到 jsp 中的资源之前是这样的:
<link href="resources/css/bootstrap.css" rel="stylesheet" media="screen" />
<link href="resources/css/alfen.css" rel="stylesheet" media="screen" />
这不是它应该的样子。这就是与众不同的原因:
<link href="${pageContext.request.contextPath}/resources/css/bootstrap.css" rel="stylesheet" media="screen" />
<link href="${pageContext.request.contextPath}/resources/css/alfen.css" rel="stylesheet" media="screen" />
现在一切正常。因此,为了完成,我想将其发布为可能的解决方案之一,当您可能遇到同样的问题时!