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中,我有这个。

<filter>

<filter-name>LoginFilter</filter-name>

<filter-class>com.mkyong.LoginFilter</filter-class>

</filter>

它指出

com.mkyong.LoginFilter is not assignable to javax.servlet.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>

这是我现在得到的错误。

   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。

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

回答:

servlet-

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

重新安装HD后,您的Tomcat安装版本或maven存储库可能会有所不同。这似乎是一个环境问题。

以上是 IntelliJ IDEA无法解析导入javax.servlet。*; 的全部内容, 来源链接: utcz.com/qa/407956.html

回到顶部