java - The type javax.servlet.ServletContext and javax.servlet.ServletException cannot be resolved -


i'm trying include spring security web project, i'm following tutorial http://docs.spring.io/spring-security/site/docs/current/guides/html5//helloworld.html

i've done in tutorial given maven project , works fine. when i'm trying include project compilation error appear. when extends abstractsecuritywebapplicationinitializer appear given error

code error

the floating compilation error

multiple markers @ line

  • the type javax.servlet.servletcontext cannot resolved. indirectly referenced required .class files
  • the type javax.servlet.servletexception cannot resolved. indirectly referenced required .class files

the 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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>spring.primefaces</groupid> <artifactid>primefaces.testwebapp</artifactid> <version>0.0.1-snapshot</version> <packaging>war</packaging> <name>springprimefaceswebapp</name> <build>     <plugins>         <plugin>             <artifactid>maven-compiler-plugin</artifactid>             <configuration>                 <source>1.7</source>                 <target>1.7</target>             </configuration>         </plugin>         <plugin>             <artifactid>maven-war-plugin</artifactid>             <version>2.3</version>             <configuration>                 <failonmissingwebxml>false</failonmissingwebxml>             </configuration>         </plugin>     </plugins> </build> <dependencies>     <!-- jsf 2.2 core , implementation -->     <dependency>         <groupid>com.sun.faces</groupid>         <artifactid>jsf-api</artifactid>         <version>2.2.11</version>     </dependency>     <dependency>         <groupid>com.sun.faces</groupid>         <artifactid>jsf-impl</artifactid>         <version>2.2.11</version>     </dependency>     <!-- prime faces -->     <dependency>         <groupid>org.primefaces</groupid>         <artifactid>primefaces</artifactid>         <version>5.2</version>     </dependency>     <!-- spring security -->     <dependency>         <groupid>org.springframework.security</groupid>         <artifactid>spring-security-web</artifactid>         <version>4.0.1.release</version>     </dependency>     <dependency>         <groupid>org.springframework.security</groupid>         <artifactid>spring-security-config</artifactid>         <version>4.0.1.release</version>     </dependency> </dependencies> <dependencymanagement>     <dependencies>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-framework-bom</artifactid>             <version>4.1.6.release</version>             <type>pom</type>             <scope>import</scope>         </dependency>     </dependencies> </dependencymanagement> 

thanks help!

using mvn clean install -u

enter image description here

just add javax.servlet api compile time dependencies. don't need include in build, it's provided target servlet container.

your current pom suggests you're deploying barebones servlet container (tomcat, jetty, etc) instead of full fledged java ee application server (wildfly, tomee, glassfish, liberty, etc), otherwise you'd have run classloading-related trouble providing jsf along webapp instead of using container-provided one.

in case, adding below dependency should servlet 3.1 container tomcat 8:

<dependency>     <groupid>javax.servlet</groupid>     <artifactid>javax.servlet-api</artifactid>     <version>3.1.0</version>     <scope>provided</scope> </dependency> 

or if you're targeting older servlet 3.0 container tomcat 7, change <version> 3.0.1 (note: there's no 3.0 due mistake on side).

if happen deploy java ee 7 application server wildfly 8, use below dependency instead. covers entire java ee api, including javax.servlet (and javax.faces, you'd remove individual jsf api/impl dependencies):

<dependency>     <groupid>javax</groupid>     <artifactid>javaee-api</artifactid>     <version>7.0</version>     <scope>provided</scope> </dependency> 

also here, if you're targeting older java ee 6 application server jboss 7, change <version> 6.0.


Comments

Popular posts from this blog

facebook - android ACTION_SEND to share with specific application only -

python - Creating a new virtualenv gives a permissions error -

go - Idiomatic way to handle template errors in golang -