首页 > 解决方案 > 注册名为“dispatcher”的 servlet 失败。请检查是否有另一个以相同名称注册的 servlet。

问题描述

下面的 Java 代码有什么问题,它是什么意思?谁能帮我解决这个问题:

java.lang.IllegalArgumentException: 无法注册名为'dispatcher'的servlet。检查是否有另一个以相同名称注册的servlet。

AppConfig.java

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.kk.kk.config")
public class AppConfig {
//Define a bean for ViewResolver

@Bean
public ViewResolver viewResolver(){
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/view/");
    viewResolver.setSuffix(".jsp");

    return viewResolver;
  }

}

DispatcherServletInitializer.java

public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

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

    @Override
    protected Class<?>[] getServletConfigClasses(){
        return new Class[] {AppConfig.class};
    }

    @Override
    protected String[] getServletMappings(){
        return new String[] {"/"};
    }

}

应用控制器.java

@Controller
public class AppController {

    @GetMapping("/")
    public String showHome(){

        return "home";
    }

}

标签: javamavenspring-mvc

解决方案


您可以实施WebMvcConfigurer

尝试这个:

@Configuration
@EnableWebMvc
public class AppConfig implements WebMvcConfigurer{
}

推荐阅读