previously initiated loading for a different type with name "javax/servlet/ServletContext"

1、问题主要servlet-api 有重复导致的;

2、解决 找到maven的依赖,找到servlet-api依赖,添加provided

        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>servlet-apiartifactId>
            <version>2.5version>
            <scope>providedscope>
        dependency>
  • compile:默认值。表示是所有任务所需的资源,会随项目一起发布。
  • test:用于编译和运行测试代码时所需的资源,不会随项目发布。
  • runtime:运行时所需的资源,如JDBC驱动。
  • provided:类似compile,JDK部分或应用服务器的classpath所需的资源,期望JDK、容器 或使用者会提供这个依赖,如servlet.jar。
  • system:类似provided,必须指定systemPath,需要显示提供依赖的jar,
  • maven不会在Repository中查找。

3、另外通过eclisep 查看pom文件,选jar层次依赖找到servlet的依赖情况,发现项目竟然还有依赖

        <dependency>
            <groupId>javax.servlet.jsp.jstlgroupId>
            <artifactId>jstl-apiartifactId>
            <version>1.2-rev-1version>
            <scope>providedscope>
        dependency>

改为

         <dependency>
            <groupId>javax.servlet.jsp.jstlgroupId>
            <artifactId>jstl-apiartifactId>
            <version>1.2-rev-1version>
            <exclusions>
                <exclusion>
                    <groupId>javax.servletgroupId>
                    <artifactId>servlet-apiartifactId>
                exclusion>
            exclusions>
            <scope>providedscope>
        dependency>

你可能感兴趣的:(maven)