/无法访问春季mvc 4

时间:2016-11-21 03:22:41

标签: spring-mvc

我有以下课程

AppConfig.java

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.pdma.dmapp")
public class AppConfig extends WebMvcConfigurerAdapter{

    @Bean(name="multipartResolver")
    public StandardServletMultipartResolver resolver(){
        return new StandardServletMultipartResolver();
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry){
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        registry.viewResolver(viewResolver);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry){
        registry.addResourceHandler("/webResources/**").addResourceLocations("/webResources/");
        registry.addResourceHandler("/angularApps/**").addResourceLocations("/angularApps/");
    }
}

SecurityConfiguration.java

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter{

    @Autowired
    public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception
    {
        auth.inMemoryAuthentication()
            .withUser("GISManager")
            .password("gis@manager@pdma")
            .roles("GISManager");

    }

    @Override
    public void configure(HttpSecurity http) throws Exception
    {
        http.authorizeRequests()
            .antMatchers("/**").access("hasRole('GISManager')")
            .and().formLogin()
            .and().exceptionHandling().accessDeniedPage("/Access_Denied");
    }
}

AppInitializer.java

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{

    private static final String LOCATION = "D:/uploads/";
    private static final long MAX_FILE_SIZE = 1024*1024*25;
    private static final long MAX_REQUEST_SIZE = 1024*1024*30;
    private static final int FILE_SIZE_THRESHOLD = 0;

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return new Class [] {AppConfig.class,SecurityConfiguration.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return new String [] {"/",
                              "*.html",
                              "*.htm",
                              "*.ajax"};
    }

    @Override
    protected void customizeRegistration(ServletRegistration.Dynamic registration){
        registration.setMultipartConfig(getMultipartConfigElement());
    }

    private MultipartConfigElement getMultipartConfigElement(){
        MultipartConfigElement element = new MultipartConfigElement(LOCATION,
                                                                    MAX_FILE_SIZE,
                                                                    MAX_REQUEST_SIZE,
                                                                    FILE_SIZE_THRESHOLD);
        return element;
    }

}

WelcomeController.java

@Controller
@RequestMapping(value="/")
public class WelcomeController {

    @GetMapping(value="")
    public String getWelcomePage(){
        return "welcome";
    }
}

welcome.jsp放在/ WEB-INF / views /

我正在获取登录页面和所有其他页面,例如main.html等,但我无法获得欢迎页面。当我尝试命中localhost时:8080 / dmapp /我在控制台中收到以下消息:

警告:在名为“dispatcher”的DispatcherServlet中找不到带有URI [/ dmapp /]的HTTP请求的映射

在使用spring-security

之前,这个问题已经存在

可能是什么问题

1 个答案:

答案 0 :(得分:0)

改变

 @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return new String [] {"/",
                              "*.html",
                              "*.htm",
                              "*.ajax"};
    }

 @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return new String [] {"/"};
    }

在我的案例中解决了问题