2014-07-10 10 views
7

Sto cercando di risolvere il mio letargo primavera con dipendenze Maven.java.lang.NoClassDefFoundError: org/springframework/core/DefaultParameterNameDiscoverer

mio server non si sta avviando e gettando questo errore:

java.lang.NoClassDefFoundError: org/springframework/core/DefaultParameterNameDiscoverer 

Non so se si tratta di un problema con i miei dipendenze o con il mio server. Fammi sapere se sarebbe necessario qualcosa dal mio progetto. Ecco le dipendenze che ho aggiunto nel mio file pom.xml. Sto usando Maven 4.0.0.

<properties> 
    <spring.version>3.0.5.RELEASE</spring.version> 
</properties> 
<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <!-- Spring 3 dependencies --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <!-- <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>3.2.3.RELEASE</version> 
    </dependency> --> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>4.0.6.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.3.5.Final</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 

    <!-- Hibernate annotation --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-ehcache</artifactId> 
     <version>4.3.5.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.31</version> 
    </dependency> 
</dependencies> 
<repositories> 
    <repository> 
     <id>abc</id> 
     <url>http://repo1.maven.org/maven2</url> 
    </repository> 
</repositories> 
+0

Non è saggio mescolare le versioni Spring in un progetto, il modulo ** spring-core ** funziona con 3.0.5 e il resto dei moduli con 4.0.6. –

+0

sì .. ottenuto aggiungendo le giuste dipendenze .. grazie per la risposta –

+0

Pls, controlla la risposta come la soluzione. Grazie –

risposta

6

Non è saggio mescolare le versioni Spring in un unico progetto.

L'errore è, avete il modulo primavera-core a lavorare con 3.0.5 e il resto dei moduli con 4.0.6

2

soluzione a questo problema potrebbe dipendere dal vostro pom.xml e che cosa biblioteca primavera ha . Alcuni rimproveri dei vasi di primavera, inclusi ed esclusi i vasi di primavera in Maven, risolveranno questo problema.

I added the following to resolve the mongo-db spring-data jar related issue. 

<properties> 
     <spring.version>3.2.4.RELEASE</spring.version> 
     <spring.data.version>1.6.1.RELEASE</spring.data.version> 
     <spring.core.version>4.1.4.RELEASE</spring.core.version> 
    </properties> 

<dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-core</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-beans</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-context</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-aop</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.core.version}</version>       
     </dependency> 

      <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>4.1.4.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.mongodb</groupId> 
      <artifactId>mongo-java-driver</artifactId> 
      <version>${mongo.driver.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jongo</groupId> 
      <artifactId>jongo</artifactId> 
      <version>1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-mongodb</artifactId> 
      <version>${spring.data.version}</version> 
     </dependency> 
0

Come suggerito da Manuel Jordan, è a causa della differenza nelle versioni. Ho appena ricevuto questo errore e l'ho risolto impostando la stessa versione di org.springframework: spring-core in ognuno dei miei moduli.

La mia struttura del progetto è la seguente:

projectname 
    module1 
    module2 
    module3 

ho scritto una prova in Module2:

projectname 
    module1 
    module2 
     test 
      <package>/TestClass.java 
    module3 

Quando ho eseguito questo test, ho ottenuto questo errore:

java.lang.NoClassDefFoundError: org/springframework/core/ErrorCoded 

Dopo aver verificato che ciascun modulo avesse la stessa versione del file org.spring : spring-core dipendenza, il test è stato eseguito.

Problemi correlati