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

所以我让我的项目完美运行,我决定安装一个新的硬盘(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中我有这个。

  LoginFilter com.mkyong.LoginFilter  

它指出

 com.mkyong.LoginFilter is not assignable to javax.servlet.Filter 

我将包括我的web.xml以防万一有人需要它。

   JavaServerFaces  MySQL Datasource example jdbc/mkyongdb javax.sql.DataSource Container    javax.faces.PROJECT_STAGE Development    faces/default.xhtml    Faces Servlet javax.faces.webapp.FacesServlet 1    Faces Servlet /faces/*   Faces Servlet *.jsf   Faces Servlet *.faces   Faces Servlet *.xhtml   LoginFilter com.mkyong.LoginFilter    LoginFilter /secured/*    secured/welcome.xhtml   

这是我现在得到的错误。

  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) 

我最初也在使用apache tomcat 8然后我认为这可能是问题而我将其更改为7然后更改为6.如果您还有其他需要请告诉我!

这是请求的POM.xml。

   4.0.0 com.mkyong.common JavaServerFaces war 1.0-SNAPSHOT JavaServerFaces Maven Webapp http://maven.apache.org   java.net.m2 java.net m2 repo http://download.java.net/maven/2     org.springframework.security spring-security-web 3.2.5.RELEASE    mysql mysql-connector-java 5.1.9    org.springframework spring 2.5.6   org.springframework spring-web 2.5.6     com.sun.faces jsf-api 2.1.0-b03    org.glassfish.web el-impl 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-compiler-plugin 2.3.1  1.6 1.6    

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

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

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

如果您没有将Maven用于您的项目(即教程等),您可以转到项目结构设置/模块/您的模块/依赖项..在dependendcies列表下面是一个小加号(+),您可以在其中选择“Library”,之后将显示Application Server Libraries的弹出窗口。 应按照之后的规定选择。

Application Server Libraries对话框

在导入项目时似乎搞砸了。 我做了一个新项目,只是将所有内容复制完毕并且完美无缺。 导入是在无法找到jar文件的地方。 不知道为什么….感谢大家的帮助!

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

在此处输入图像描述

你用到终端mvn clean install

此命令下载所有依赖项,之后,您转到“Maven项目”并执行“Reimport All Maven Project”

在此处输入图像描述在此处输入图像描述