Partage
  • Partager sur Facebook
  • Partager sur Twitter

SpringMVC Spring Data MongoDB Maven

Erreur lors du test Junit : java.lang.NoSuchMethodError

    21 septembre 2015 à 21:48:51

    Bonjour,

    je suis entrain de travailler sur un projet avec Spring Mvc Spring Data etMongoDB. Lorsque je teste avec JUint j'ai une erreur. Mes Maven dependencies :

     spring-core 4.2.1.RELEASE
     mongo-java-driver 2.12.1
    spring-data-mongodb 1.4.2.RELEASE
     spring-context 4.2.1.RELEASE
    junit 4.7

    voila le fichier de configuration de Spring:

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mongo="http://www.springframework.org/schema/data/mongo"
    xsi:schemaLocation="http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://www.springframework.org/schema/data/mongo
          http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    
    <mongo:mongo host="127.0.0.1" port="27017" />
    <mongo:db-factory dbname="AgenceAviationDB" />
    
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    </bean>

    l'une de mes entités :

    package com.pfa.agenceDaviation.entities;
    import java.io.Serializable;
    import org.springframework.data.annotation.Id;
    import org.springframework.data.mongodb.core.mapping.Document;
    @Document
    public class Passager implements Serializable{
    @Id
    private String id;
    private String nomP;
    private String adresseP;
    private String nTelephoneP;
    //setters getters and constructors

    Ma classe de test :

    package com.pfa.agenceDaviation;
    import static org.junit.Assert.*;
    import org.junit.Before;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext; 
    import org.springframework.context.support.GenericXmlApplicationContext;
    import org.springframework.data.mongodb.core.MongoOperations;
    public class testDAO {
    @Before
    public void setUp() throws Exception {
    }
    
    @Test
    public void test() {
        try {
            ApplicationContext ctx = new GenericXmlApplicationContext("ApplicationContext.xml");
               MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");  
                assertTrue(true);
    
        } 
        catch (Exception e) {
        assertTrue(e.getMessage(),false);
        }
        }
        }

    et voila l'erreur :

    java.lang.NoSuchMethodError: org.springframework.expression.spel.SpelParserConfiguration.<init>(Lorg/springframework/expression/spel/SpelCompilerMode;Ljava/lang/ClassLoader;)V
    at org.springframework.context.expression.StandardBeanExpressionResolver.<init>(StandardBeanExpressionResolver.java:98)
    at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:553)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:455)
    at org.springframework.context.support.GenericXmlApplicationContext.<init>(GenericXmlApplicationContext.java:70)
    at com.pfa.agenceDaviation.testDAO.test(testDAO.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

    Est ce que vous pouvez m'aider à resoudre ce probleme ? Merci infiniment d'avance. 



    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      22 septembre 2015 à 14:27:26

      Une NoSuchMethodError... Ca sonne un peu comme si tu avais une "librairie parasite", je pense...

      Fais un ctrl + click sur le packqge <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">, et regarde si ca te mene bien quelque part.

      C est assez etrange, ton erreur est ligne 21, et la ligne 21 est une parenthese fermante... :o

      • Partager sur Facebook
      • Partager sur Twitter
        22 septembre 2015 à 14:44:10

        Salut ! :)

        Effectivement, ça peut être une méthode ou une bibliothèque appelé plusieurs fois mais aussi un problème avec le cache. Essaye de forcer les fichier bin à se générer de nouveau en supprimant le répertoire bin et en compilant de nouveau pour voir si ton problème viens de là.

        • Partager sur Facebook
        • Partager sur Twitter

        SpringMVC Spring Data MongoDB Maven

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown