Spring mvc + Maven多模块+耳机 - 部署

时间:2016-11-10 06:46:17

标签: maven spring-mvc

我使用Spring + Maven创建了一个以下多模块项目。它具有以下层次结构,

enter image description here

当我构建这个项目时,我得到clevermoe_EE/target下的cleverEE.ear文件。此ear文件包含以下内容,

enter image description here

最初我使用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错误。

有人可以说我需要照顾什么吗?

1 个答案:

答案 0 :(得分:-1)

http://localhost:8080/clevermoe_web-0.1/hello/something有效吗?如果你没有在META-INF中的application.xml中映射war上下文,那么这是使用的上下文(来自战争名称)

相关问题