2011-09-13 12 views
7

'u kullanmak için bunlara ihtiyacınız var Maven'i kullanarak bahar web uygulamasında bazı birim testleri çalıştırmaya çalışıyorum. App yükler ve çalışır, Tamamen (Maven kullanarak tüm) bir konuşlandırılmış savaş dosyası oluşturur. (Src/test/Java bulunur)Yapılandırma sorunu: yaylı güvenlik web sınıfları mevcut değil. <Filter-chain-map>

Testim sınıfı:

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] 

My pom dependcy olarak tanımlanır Maven > test

çalışan: I hata alma Ancak

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

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

compile kapsamı için varsayılan olan which should be OK? Kapsamı test ve provided olarak değiştirdiğimde aynı hatayı döndürür.

Ve benim .classpath şuna benzer:

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

Ben set-up nasıl benim app bağlam ve testler doğru?

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>{version}</version> 
     <scope>provided</scope> 
    </dependency> 
+0

Bir sınıf yolu sorunu gibi görünüyor. Maven'in test aşaması sırasında sınıfınızda yer almasını sağlamak için gerekli tüm kapsam bağımlılıklarını 'pom.xml' değerinize uygun 'kapsam' seviyesine dahil ettiniz mi? – aroth

+0

iyi yaptım düşündüm, soru – NimChimpsky

cevap

14

Sen pom.xml'Bu Servlet kütüphanesini dahil etmek gerekir. Spring Security Web'i pom.xml'inize ekleyin.

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

düzenleyecektir, Ben benzer bir sorun vardı ve bu çözüm (org.springframework.security.web.FilterChainProxy birkaç javx.servlet sınıfını içe aktarır) –

+0

sizsiniz. – OhadR