我在 Eclipse 和 JBoss 6.2 中使用 Spring MVC 设置了一个示例代码库。
但是我通过http://localhost:8080/rest/simple/main得到“404”
Jboss日志如下:
2015-07-29 11:51:27,356 错误 [controller.simpleController] (http-/0.0.0.0:8080-1) 获取请求
2015-07-29 11:51:27,391 WARN [org.springframework.web.servlet.PageNotFound] (http-/0.0.0.0:8080-1) 找不到带有 URI [/rest/WEB-INF/ 的 HTTP 请求的映射视图/main.jsp] 在 DispatcherServlet 中,名称为 'dispatcher'
目录 :
>rest-server-simple
> -src
> -main
-java
-config
-InitConfig.java
-ServletConfig.java
-controller
-simpleController.java
> -webapp
> -WEB-INF
-jboss-web.xml
>views
-main.jsp
初始化配置:
public class InitConfig implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(ServletConfig.class);
ServletRegistration.Dynamic registration = servletContext.addServlet("dispatcher",new DispatcherServlet(ctx));
registration.setLoadOnStartup(1);
registration.addMapping("/*"); }}
Servlet 配置:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages ="controller")
public class ServletConfig {
@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
jboss-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/rest</context-root>
</jboss-web>
简单控制器:
@Controller
@RequestMapping(value = "/simple")
public class simpleController {
private static final Logger logger = LoggerFactory.getLogger(simpleController.class);
@RequestMapping(value = "/main", method = RequestMethod.GET)
public String hello(){
logger.error("get request");
return "main";
}
}