我使用Spring + Maven创建了一个以下多模块项目。它具有以下层次结构,
当我构建这个项目时,我得到clevermoe_EE/target
下的cleverEE.ear文件。此ear文件包含以下内容,
最初我使用JBoss7.1.1 AS进行部署,所以我将这个ear文件复制到了JBoss depolyments,我能够按如下方式加载战争,
http://localhost:8080/clevermoe_web
我按照此链接制作了春季项目http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example-annotation/
所以我在clevermoe_web模块中使用了以下类,
SpringWebConfig,
@EnableWebMvc // mvc:annotation-driven
@Configuration
@ComponentScan({ "com.zeptoh.clever.controllers" })
public class SpringWebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations(
"/resources/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
MyWebInitializer类,
public class MyWebInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return new Class[] { SpringWebConfig.class };
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
return new String[] { "/" };
}
}
控制器类,
@Controller
public class HelloController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String printWelcome(ModelMap model) {
model.addAttribute("message", "Clever Portal");
return "hello";
}
@RequestMapping(value = "/hello/{name:.+}", method = RequestMethod.GET)
public ModelAndView hello(@PathVariable("name") String name) {
ModelAndView model = new ModelAndView();
model.setViewName("hello");
model.addObject("msg", name);
return model;
}
}
我无法按如下方式打开弹簧控制器,
http://localhost:8080/clevermoe_web/hello/something
它说404错误
HTTP Status 404 - /clevermoe_web/hello/something
type Status report
message /clevermoe_web/hello/something
description The requested resource (/clevermoe_web/hello/something) is not available.
JBossWeb/2.0.1.GA
我阅读了一些文章,其中说,要访问耳朵部署,使用JBoss并不是一件好事。所以我下载了TomEE服务器。它将ear文件提取到文件夹。但我遇到了与JBoss相同的问题。
我将war文件(clevermoe_web.war)复制到TomEE服务器的webapps文件夹中的cleverEE.ear中,它可以正常访问弹簧控制器。
我在JBoss的cleverEE.ear中复制了war文件(clevermoe_web.war),但它仍显示404错误。
有人可以说我需要照顾什么吗?
答案 0 :(得分:-1)
http://localhost:8080/clevermoe_web-0.1/hello/something有效吗?如果你没有在META-INF中的application.xml中映射war上下文,那么这是使用的上下文(来自战争名称)