IntelliJ IDEA无法解析导入javax.servlet.*;

IntelliJ IDEA无法解析导入javax.servlet.*;,java,tomcat,servlets,intellij-idea,Java,Tomcat,Servlets,Intellij Idea,所以我让我的项目工作得很好,我决定安装一个新的硬盘驱动器(SSD),现在我无法让它正常运行 我正在使用Intellij,所有这些导入都有问题 import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; impor

所以我让我的项目工作得很好,我决定安装一个新的硬盘驱动器(SSD),现在我无法让它正常运行

我正在使用Intellij,所有这些导入都有问题

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
他们说不能解决这个问题

在我的web.xml中,我也有这个

<filter>
    <filter-name>LoginFilter</filter-name>
    <filter-class>com.mkyong.LoginFilter</filter-class>
</filter>
我将包括我的web.xml,以防有人需要它

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5">

<display-name>JavaServerFaces</display-name>

<resource-ref>
<description>MySQL Datasource example</description>
<res-ref-name>jdbc/mkyongdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


<!-- Change to "Production" when you are ready to deploy -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>

<!-- Welcome page -->
<welcome-file-list>
<welcome-file>faces/default.xhtml</welcome-file>
</welcome-file-list>

<!-- JSF mapping -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

  <!-- Map these files with JSF -->
 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>/faces/*</url-pattern>
 </servlet-mapping>

 <servlet-mapping>
   <servlet-name>Faces Servlet</servlet-name>
   <url-pattern>*.jsf</url-pattern>
 </servlet-mapping>

<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.faces</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

<filter>
    <filter-name>LoginFilter</filter-name>
    <filter-class>com.mkyong.LoginFilter</filter-class>
</filter>
<!-- Set the login filter to secure all the pages in the /secured/* path of the application  -->
<filter-mapping>
    <filter-name>LoginFilter</filter-name>
    <url-pattern>/secured/*</url-pattern>
</filter-mapping>

<!-- By default go to secured welcome page -->
<welcome-file-list>
    <welcome-file>secured/welcome.xhtml</welcome-file>
</welcome-file-list>

</web-app>
起初我也在使用ApacheTomcat8,后来我认为这可能是问题所在,于是我将它改为7,然后改为6。如果你还需要什么,请告诉我

以下是请求的POM.xml文件

  <project xmlns="http://maven.apache.org/POM/4.0.0" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 http://maven.apache.org/maven-v4_0_0.xsd">

 <modelVersion>4.0.0</modelVersion>
 <groupId>com.mkyong.common</groupId>
 <artifactId>JavaServerFaces</artifactId>
 <packaging>war</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>JavaServerFaces Maven Webapp</name>
 <url>http://maven.apache.org</url>

<repositories>
 <repository>
   <id>java.net.m2</id>
   <name>java.net m2 repo</name>
   <url>http://download.java.net/maven/2</url>
 </repository>
</repositories>

<dependencies>

  <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</artifactId>
      <version>3.2.5.RELEASE</version>
  </dependency>

<!-- MySQL database driver -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.9</version>
</dependency>

<!-- Spring framework --> 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.5.6</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>2.5.6</version>
</dependency>


<!-- For Servlet Container like Tomcat -->
<!-- http://download.java.net/maven/2 -->
<dependency>
  <groupId>com.sun.faces</groupId>
  <artifactId>jsf-api</artifactId>
  <version>2.1.0-b03</version>
</dependency>



<!-- EL 2.2 to support method parameter in EL -->
<dependency>
  <groupId>org.glassfish.web</groupId>
  <artifactId>el-impl</artifactId>
  <version>2.2</version>
</dependency>


<!-- http://repo1.maven.org/maven2/ -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

  <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
  </dependency>

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


</dependencies>


 <build>
   <finalName>JavaServerFaces</finalName>

  <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <version>2.3.1</version>
       <configuration>
           <source>1.6</source>
           <target>1.6</target>
       </configuration>
   </plugin>
</plugins>

4.0.0
com.mkyong.common
JavaServerFaces
战争
1.0-快照
JavaServerFaces Maven Webapp
http://maven.apache.org
java.net.m2
java.net m2回购协议
http://download.java.net/maven/2
org.springframework.security
spring安全网
3.2.5.1发布
mysql
mysql连接器java
5.1.9
org.springframework
春天
2.5.6
org.springframework
弹簧网
2.5.6
com.sun.faces
JSFAPI
2.1.0-b03
org.glassfish.web
厄尔尼普勒
2.2
javax.servlet
jstl
1.2
javax.servlet.jsp
jsp api
2.1
javax.servlet
servlet api
2.5
JavaServerFaces
org.apache.maven.plugins
maven编译器插件
2.3.1
1.6
1.6

servlet-api.jar是服务器的一部分(本例中为Tomcat)。您需要在POM中声明对该jar的引用并将其标记在“提供的”范围内,或者(如果您出于某种原因没有使用maven),您需要将其添加到类路径(项目中web模块的库)中


很有可能在重新安装HD后,Tomcat forder或maven repo的安装会有所不同。这似乎是一个环境问题。

在导入项目时,似乎出现了一些问题。我做了一个新的项目,把所有的东西都复制了一遍,效果非常好。导入是在找不到jar文件的地方进行的。不知道为什么。。。。谢谢大家的帮助

我发现了同样的问题,今天就解决了。虽然我在pom.xml中声明了javax.servlet-api,但仍然存在问题。然后我通过将javax.servlet api:3.10.jar文件添加到项目的类路径中来修复它


正如上面有人提到的-这些库是应用程序服务器的一部分,因此它们不应该像Spring等其他库那样部署到服务器上。您需要将它们作为提供的资源进行引用

如果您的项目没有使用Maven(即教程等),则可以转到项目结构设置/模块/模块/依赖项。。依赖项列表下方是一个小加号(+),您可以在其中选择“Library”,然后将显示带有应用程序服务器库的弹出窗口。应按照随后提供的方式进行选择


您在终端中使用的mvn清洁安装

此命令下载所有依赖项,然后转到“Maven项目”并执行“重新导入所有Maven项目”


在我的模块列表中(ctrl+shift+alt+s并导航到模块),我的tomcat的作用域设置为runtime。我把它切换到编译时,它工作了

我知道我对这个问题的回答有点晚,但就我而言,这正是因为缺少SDK

我通过在“项目结构”菜单中配置解决了这个问题

所以,像我一样,其他人将来也可能有同样的问题,这是最简单的解决方法


对我有用的是单击下载/源代码和文档->从这里重新加载maven项目

您的类路径中有servlet-api.jar吗?老实说,我不确定如何检查。。。。我的意思是,我看到我的库文件夹中有3个不同的xml文件,分别是Maven_javax_el_el_api_2_2,Maven_javax_servlet_jsp_jsp_api_2_1,Maven_javax_servlet_jstl_1_2,Maven_javax_servlet_servlet_api_2_5I刚刚点击了软件包,它显示了我在JavaServerFaces->Libraries->javax->servlet->下有一个过滤器接口。。。。在http下有一个HttpServletRequest接口。我还点击了出现问题的单个类上的compile,它现在告诉我java:package javax.servlet不存在?在“WEB-INF/libs/”或tomcat lib文件夹下部署的war中?如果您使用maven posting pom.xml将非常有用或指定您正在使用的库,我手动将其添加到我的类路径中,它确实解决了Intellij red导入问题,但如果我编译代码,它会说javax.servlet不是有效的引用。或者类似的东西。说找不到javax.servlet,还尝试重新安装Intellij。无济于事。我将尝试重新安装JDK和maven,看看会发生什么,因为我正在做任何可能的事情。重新安装没有任何效果。请确保检查模块设置>工件下的输出布局选项卡-结果是我需要手动从WEB-INF/lib中删除Tomcat/lib JAR。当我将全局Tomcat库作为模块依赖项包括进来时,Intellij自动将这些JAR添加到WEB-INF/lib下的输出工件中,即使它们被指示为“已提供”
   javax.servlet.ServletException: Servlet.init() for servlet Faces Servlet threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:534)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2381)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2370)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

java.lang.IllegalStateException: Application was not properly initialized at startup, could not    find Factory: javax.faces.context.FacesContextFactory
javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:800)
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:302)
javax.faces.webapp.FacesServlet.init(FacesServlet.java:186)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:534)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2381)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2370)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)
  <project xmlns="http://maven.apache.org/POM/4.0.0" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 http://maven.apache.org/maven-v4_0_0.xsd">

 <modelVersion>4.0.0</modelVersion>
 <groupId>com.mkyong.common</groupId>
 <artifactId>JavaServerFaces</artifactId>
 <packaging>war</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>JavaServerFaces Maven Webapp</name>
 <url>http://maven.apache.org</url>

<repositories>
 <repository>
   <id>java.net.m2</id>
   <name>java.net m2 repo</name>
   <url>http://download.java.net/maven/2</url>
 </repository>
</repositories>

<dependencies>

  <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</artifactId>
      <version>3.2.5.RELEASE</version>
  </dependency>

<!-- MySQL database driver -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.9</version>
</dependency>

<!-- Spring framework --> 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.5.6</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>2.5.6</version>
</dependency>


<!-- For Servlet Container like Tomcat -->
<!-- http://download.java.net/maven/2 -->
<dependency>
  <groupId>com.sun.faces</groupId>
  <artifactId>jsf-api</artifactId>
  <version>2.1.0-b03</version>
</dependency>



<!-- EL 2.2 to support method parameter in EL -->
<dependency>
  <groupId>org.glassfish.web</groupId>
  <artifactId>el-impl</artifactId>
  <version>2.2</version>
</dependency>


<!-- http://repo1.maven.org/maven2/ -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
</dependency>

  <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
  </dependency>

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


</dependencies>


 <build>
   <finalName>JavaServerFaces</finalName>

  <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <version>2.3.1</version>
       <configuration>
           <source>1.6</source>
           <target>1.6</target>
       </configuration>
   </plugin>
</plugins>