SpringMvc4.2.5 零配置出现 No mapping found for HTTP request with URI(转)
原文地址:SpringMvc4.2.5 零配置出现 No mapping found for HTTP request with URI
采用 spring 零配置,参考 http://hanqunfeng.iteye.com/blog/2113820,WebInitializer 类代码如下:
public class WebInitializer implements WebApplicationInitializer {
private static final Logger logger = LogManager.getLogger(WebInitializer.class);
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
logger.info("-------->启动web应用");
/*
* Log4jConfigListener: log4j 2日志配置,配置文件为 classpath:log4j2.xml
*/
servletContext.addListener(new Log4jServletContextListener());
Log4jServletFilter log4jServletFilter = new Log4jServletFilter();
servletContext.addFilter("log4jServletFilter", log4jServletFilter);
/*
* OpenSessionInViewFilter: 加上该 filter 可以保证jackson能够序列化LAZY FetchType
*/
OpenSessionInViewFilter openSessionInViewFilter = new OpenSessionInViewFilter();
FilterRegistration.Dynamic openSessionInViewFilterRegistration = servletContext
.addFilter("openSessionInViewFilter", openSessionInViewFilter);
//指定在spring配置的sessionFactory
openSessionInViewFilterRegistration.setInitParameter("sessionFactoryBeanName", "sessionFactory");
//singleSession默认为true,若设为false则等于没用OpenSessionInView
openSessionInViewFilterRegistration.setInitParameter("singleSession", "true");
openSessionInViewFilterRegistration.addMappingForUrlPatterns(
EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE), false, "/");
ServerParameter params = ServerParameter.getInstance();
DBMananger.loadEnv();
if(DBMananger.connDB()) { // 数据库连接成功,再载入APP配置
params.addAttribute("connDBSataus", true);
/*
* spring mvc 外的配置 AppConfig类
*/
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(AppConfig.class);
servletContext.addListener(new ContextLoaderListener(rootContext));
}
/*
* spring-mvc 上下文
*/
AnnotationConfigWebApplicationContext springMvcContext = new AnnotationConfigWebApplicationContext();
// springMvcContext.register(MvcConfig.class);
/*
* DispatcherServlet
*/
DispatcherServlet dispatcherServlet = new DispatcherServlet(springMvcContext);
ServletRegistration.Dynamic dynamic = servletContext.addServlet("dispatcherServlet", dispatcherServlet);
dynamic.setLoadOnStartup(1);
dynamic.addMapping("/");
/*
* CharacterEncodingFilter: 解决中文乱码问题
*/
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("utf-8");
FilterRegistration characterEncodingfilterRegistration =
servletContext.addFilter("characterEncodingFilter", characterEncodingFilter);
characterEncodingfilterRegistration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*");
}
}
MvcConfig 配置如下:
public class MvcConfig extends WebMvcConfigurationSupport {
private static final Logger logger = LogManager.getLogger(MvcConfig.class);
/**
* 注册视图处理器
* @return
*/
@Bean
public ViewResolver viewResolver() {
logger.info("注册视图处理器-------->ViewResolver");
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
/**
* 资源访问处理器
* 可以在jsp中使用/images/**的方式访问/images/下的内容
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
logger.info("资源访问处理器-------->addResourceHandlers");
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/")
.resourceChain(true).addResolver(
new VersionResourceResolver().addContentVersionStrategy("/**"));
}
}
结果出现No mapping found for HTTP request with URI警告,访问静态资源时为404错误。
经调试发现,在MvcConfig类中加入下面Bean,问题解决
@Bean
public HandlerMapping resourceHandlerMapping() {
logger.info("HandlerMapping");
return super.resourceHandlerMapping();
}
为什么要显式声明该Bean,尚未得知。
另外,如果在MvcConfig类中加注解,@Configuration,在WebInitializer类中配置
AnnotationConfigWebApplicationContext springMvcContext = new AnnotationConfigWebApplicationContext();
springMvcContext.register(MvcConfig.class);
将会导致MvcConfig加载两次,可以注释掉其中一边。
SpringMvc4.2.5 零配置出现 No mapping found for HTTP request with URI(转)的更多相关文章
- spring访问静态资源出错,No mapping found for HTTP request with URI xxx/resources/js/jquery.min.js...
问题:spring访问静态资源出错,No mapping found for HTTP request with URI xxx/resources/js/jquery.min.js... web.x ...
- springmvc No mapping found for HTTP request with URI in Dispatc
springmvc No mapping found for HTTP request with URI in Dispatc 博客分类: Java Web springmvcspring MVCNo ...
- SpringMvc出现No mapping found for HTTP request with URI的终极解决办法
No mapping found for HTTP request with URI 出现这个问题的原因是在web.xml中配置错了,如: <servlet> <servlet-na ...
- 相对路径获取项目文件 及报错 No mapping found for HTTP request with URI XXX in DispatcherServlet with name ‘springmvc’解决方法
首先一点,WebRoot目录下的文件是都可以通过浏览器输入路径,直接读取到的 例如这样: 而WebRoot下面WEB-INF是无法浏览器输入路径直接读取的. 因为是受保护的. 如果jsp读取一个图片的 ...
- org.springframework.web.servlet.PageNotFound No mapping found for HTTP request with URI [/AssetRepair/assetRepairController/test.do] in DispatcherServlet with name 'assetrepair'
web.xml文件配置: xxx-servlet.xml 我们可以发现DispatcherServlet会处理"jsp"后缀的请求;而模型视图后缀也是jsp的 如果这样配置会报以下 ...
- Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决--转载
原文地址:http://www.programgo.com/article/96083031845/ 最近项目中使用到Spring3,在感叹Spring3注解配置清爽的同时竟然出现了这个不和谐的事情, ...
- No mapping found for HTTP request with URI [/user/login.do] in DispatcherServlet with name 'dispatcher'错误
1.警告的相关信息 七月 24, 2017 3:53:04 下午 org.springframework.web.servlet.DispatcherServlet noHandlerFound警告: ...
- <context:annotation-config/>和<mvc:annotation-driven/>及解决No mapping found for HTTP request with URI [/role/getRole] in DispatcherServlet with name 'springmvc-config'
1:什么时候使用<context:annotation-config> 当你使用@Autowired,@Required,@Resource,@PostConstruct,@PreDest ...
- org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI
在重启项目中会遇到[org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI ...
随机推荐
- Levenshtein Distance,判断字符串的相似性
private int LevenshteinDistance(string s1,string s2,int maxValue) { if (s1 == null|| s1.Length == 0) ...
- 51nod 1351 吃点心(贪心)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1351 题意: 思路: 要么先选low值大的,要么先选high值大的,分两 ...
- HDU 3635 Dragon Balls(带权并查集)
http://acm.hdu.edu.cn/showproblem.php?pid=3635 题意: 有n颗龙珠和n座城市,一开始第i颗龙珠就位于第i座城市,现在有2种操作,第一种操作是将x龙珠所在城 ...
- python接口测试模版
"""Test case implementation""" import sys import functools import diff ...
- Spring-MVC依赖
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api& ...
- vs2013 报错error C1083: 无法打开包括文件:“gl\glew.h”: No such file or directory\
vs报错诸如如无法打开“gl\xxx.h”时, 解决方法: 1.去http://glew.sourceforge.net/下载相关文件,2.在下载下来的文件里找到xxx.h,将其复制到vs的相关目录下 ...
- leecode第五十九题(螺旋矩阵 II)
class Solution { public: vector<vector<int>> generateMatrix(int n) { )//特殊情况 { vector< ...
- Codeforces 493C - Vasya and Basketball
C. Vasya and Basketball 题目链接:http://codeforces.com/problemset/problem/493/C time limit per test 2 se ...
- ionic-input单选复选杂交
<label class="toggle toggle-positive"> <input type="radio" ng-model=&qu ...
- 第 4 章 容器 - 028 - 限制容器对CPU的使用
限制容器对CPU的使用 默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制. Docker 可以通过 -c 或 --cpu-shares 设置容器使用 CPU 的权重.如果不指定, ...