Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IntelliJ IDEA cannot resolve import javax.servlet.*;

So I had my project working perfectly and I decided to install a new hard drive (SSD) and now I cannot get it to run correctly.

I am using Intellij and am having all of these imports have issues.

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; 

They are saying cannot resolve symbol.

Also in my web.xml I have this.

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

it states

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

Im going to include my web.xml just in case someone needs it.

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

This is the error I am getting now.

   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) 

I was also using apache tomcat 8 at first then I thought that might be the issue and I changed it to 7 then to 6. If you need anything else please let me know!

here is the POM.xml as requested.

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

like image 898
Justin Avatar asked Aug 31 '14 05:08

Justin


People also ask

How to add javax library in Intellij?

From the main menu, select File | Project Structure Ctrl+Alt+Shift+S . Under Platform Settings, select Global Libraries. and select one of the following: Select Java or Kotlin/JS to add a library from the files located on your computer.

Where is javax servlet package?

It contains, among others, the files /usr/share/java/servlet-api-2.5. jar and /usr/share/java/jsp-api-2.1. jar , which are the servlet and JSP libraries you need.


1 Answers

As somebody mentioned it above - these libraries are part of an application server so they should not be deployed to the server as other libraries like Spring and so on. You need reference them as a provided resource.

If you are not using Maven for your project (i.e. tutorials etc.) you can go to your Project Structure settings / Modules / your module / Dependencies .. and down under the list of dependendcies is a small plus symbol (+) where you can select "Library" and after that the popup with Application Server Libraries will show. It should be selected as provided afterwards.

Application Server Libraries Dialog

like image 125
Jiri Vlasimsky Avatar answered Oct 18 '22 10:10

Jiri Vlasimsky