maven项目编译报错:

 

[java] view plain copy
 
 
 
  1. 软件包 javax.servlet 不存在  
  2. import javax.servlet.*;  
  1.  
    软件包 javax.servlet 不存在
  2.  
    import javax.servlet.*;

 

明明tomcat下面的lib自带有这些包,却依然加载失败,

解决方法一:

在pom.xml里面重新引入这个包

 

[java] view plain copy
 
 
 
  1. <dependency>  
  2.     <groupId>javax.servlet</groupId>  
  3.     <artifactId>servlet-api</artifactId>  
  4.     <version>2.5</version>  
  5.     <scope>provided</scope>  
  6. </dependency> 

      <!-- servlet相关 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>

  1.  
    <dependency>
  2.  
    <groupId>javax.servlet</groupId>
  3.  
    <artifactId>servlet-api</artifactId>
  4.  
    <version>2.5</version>
  5.  
    <scope>provided</scope>
  6.  
    </dependency>


但是这个方法容易会跟tomcat里面的包冲突,会报这个错误:

 

 

[java] view plain copy
 
 
 
  1. jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class    
jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class  


解决方法二:

 

右键,buildPath,自己手动从tomcat目录下的lib包里添加外部jar包。

 

参考:

项目--右键--属性-->

Java Build Path--查看jdk版本

Java Compiler  -- 查看版本

Project Facets -- 查看java版本

 

三个版本要保持一致。