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的弹出窗口。 应按照之后的规定选择。
在导入项目时似乎搞砸了。 我做了一个新项目,只是将所有内容复制完毕并且完美无缺。 导入是在无法找到jar文件的地方。 不知道为什么….感谢大家的帮助!
我发现了同样的问题,今天就修好了。 虽然我已经在我的pom.xml中声明了javax.servlet-api但仍然遇到了问题。 然后我通过将javax.servlet-api:3.10.jar文件添加到项目的类路径中来修复它。
你用到终端mvn clean install
此命令下载所有依赖项,之后,您转到“Maven项目”并执行“Reimport All Maven Project”