2014-07-10 26 views
7

我想解決我的春季休眠與maven依賴關係。java.lang.NoClassDefFoundError:org/springframework/core/DefaultParameterNameDiscoverer

我的服務器無法啓動,並拋出這個錯誤:

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

我不知道它是否是一個問題,我的依賴或我的服務器。讓我知道如果我的項目需要任何東西。以下是我在我的pom.xml文件中添加的依賴關係。我正在使用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

是不是明智的混合在一個項目中的Spring版本,你有** spring-core **模塊使用3.0.5和其他模塊與4.0.6。 –

+0

是啊..通過加入正確的依賴關係得到它..謝謝你的回覆 –

+0

請檢查答案如何解決方案。謝謝 –

回答

6

是不是明智的混合在一個項目中的春天版本。

的錯誤是,你有彈簧核心模塊3.0.5工作和模塊的使用4.0.6

2

解決這個問題,其餘的將取決於你的pom.xml什麼春天庫有。 包括和不包括彈簧罐在內的春季罐子的一些調整將解決這個問題。

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

正如曼努埃爾約旦所說,這是因爲版本的差異。我剛剛得到這個錯誤,並通過在每個模塊中設置相同版本的org.springframework:spring-core來解決它。

我的項目結構如下:

projectname 
    module1 
    module2 
    module3 

我寫了一個測試下模塊2:

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

當我運行這個測試,我得到這個錯誤:

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

在確保每個模塊具有相同版本的org.springframework之後:spring-core依賴項,測試運行。