maven编译web项目显示“软件包 javax.servlet.http 不存在"

Posted 疯子加天才

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven编译web项目显示“软件包 javax.servlet.http 不存在"相关的知识,希望对你有一定的参考价值。

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版本

 

三个版本要保持一致。

以上是关于maven编译web项目显示“软件包 javax.servlet.http 不存在"的主要内容,如果未能解决你的问题,请参考以下文章

Maven01_07_7.Maven的编译插件创建web的Maven项目讲解把Maven的web项目跑到tomcat中更改JDK的版本用1.8的版本来编译我们的代码

maven web项目部署到tomcat时怎么设置不将web项目关联的maven工程打jar包,而是将maven工程编译到classes

maven命令和maven插件

使用 maven 编译 netbeans Web 服务项目时出错

myeclipse2014创建maven的web项目和eclipse中创建maven的web项目显示为啥不一样

web项目转为maven项目