在IntelliJ IDEA中导入项目spring-boot错误

时间:2019-03-09 00:44:55

标签: spring spring-boot intellij-idea

我正在spring-boot中导入IntelliJ Web Maven项目,我的项目已在EclipseSTS工具中工作。 我在下面出现错误:

/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/bin/java "-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=50562:/Applications/IntelliJ 
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/Filter
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more
Process finished with exit code 1

请帮助解决该问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

通常在您忘记在项目中添加Servlet相关依赖项时发生这种情况,特别是当您导入基于Eclipse构建的项目时,在该项目中您可以选择在项目构建路径中附加服务器(例如Apache Tomcat)。

因此,在新的IDE(以您的情况为IntelliJ)中,您也必须这样做,但是我建议添加所需的依赖项,然后它才能与所有IDE兼容。

尝试在项目pom.xml中添加以下依赖项:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

您可以根据项目要求更改依赖项版本。

或者,如果项目具有spring-boot-starter-tomcat依赖性,请确保其范围应为compile,如下所示:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>compile</scope>
        </dependency>