Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configuration problem: spring-security-web classes are not available. You need these to use <filter-chain-map>

I am attempting to run some unit tests on my spring web app using Maven. The app installs and runs fine, it generates a deployable war file all OK (all using Maven).

My test class (located in src/test/java):

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:C:/myProjects/myWebapp/src/main/webapp/WEB-INF/applicationContext-test.xml"})
@Transactional
public class MyTest {
...

However I recieve the error :

Configuration problem: spring-security-web classes are not available. You need these to use <filter-chain-map>

Offending resource: URL [file:C:/myProjects/myWebapp/src/main/webapp/WEB-INF/applicationContext-test.xml]

When running Maven > test

My pom dependcy is defined as

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.0.5.RELEASE</version>                
</dependency>

Which defaults to compile scope, which should be OK ? It returns the same error when I change scope to test and provided.

And my .classpath looks like this:

<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java"/>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>

How do I set-up my app context and tests correctly ?

like image 765
NimChimpsky Avatar asked Sep 13 '11 12:09

NimChimpsky


1 Answers

You have to include the Servlet library in your pom.xml :

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>{version}</version>
        <scope>provided</scope>
    </dependency>
like image 167
user845199 Avatar answered Nov 08 '22 23:11

user845199