2013-12-07 3 views
1

В моем проекте maven используется весна, спящий режим. Я получаю «нет такой ошибки метода». Я считаю, что это связано с некоторым конфликтом в версии в зависимостях, но не знаю, что. Сборка выполнена успешно. Но во время «NetBeans: развертывание на GlassFish Server 4.0» (я использую кнопку запуска в Netbeans), я получаю ниже ошибки, которую я очень старался устранить без успеха. Любая помощь приветствуется ...why .NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter

failed on GlassFish Server 4.0 
Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V. 

Ниже я мой pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>Spring3HibernateMaven</groupId> 
    <artifactId>AttestationSpring3HibernateMaven</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <description></description> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.0</version> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>javax.persistence</groupId> 
      <artifactId>persistence-api</artifactId> 
      <version>1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${org.springframework.version}</version> 
     </dependency> 
     <!-- === --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.2.7.Final</version> 
     </dependency> 
     <!-- === --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.5.6-Final</version> 
      <exclusions> 
       <exclusion> 
        <artifactId>hibernate-commons-annotations</artifactId> 
        <groupId>org.hibernate</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.2.7.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.0.1.Final</version> 
     </dependency> 

<!-- === --> 
     <!-- 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.3.2.GA</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.3.1.GA</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.2.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.2.0.Final</version> 
      <type>jar</type> 
     </dependency> 

     --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.4.2</version> 
     </dependency> 
     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.10</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>20030825.184428</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-pool</groupId> 
      <artifactId>commons-pool</artifactId> 
      <version>20030825.183949</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> 
      <type>jar</type> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.6.1</version> 
      <type>jar</type> 
     </dependency> 
    </dependencies> 
    <properties> 
     <org.springframework.version>3.2.1.RELEASE 
     </org.springframework.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <netbeans.hint.deploy.server>gfv4ee7</netbeans.hint.deploy.server> 
    </properties> 
    <name>AttestationSpring3HibernateMaven</name> 
</project> 

Ниже моя весна-servlet.xml где DataSource, SessionFactory конфигурации сделаны ..

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
    p:driverClassName="${jdbc.driverClassName}" 
    p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" 
    p:password="${jdbc.password}" /> 


<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 

     <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan" value="org.attestation.entities" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 

    </property> 
     <!--====== 

    <property name="dataSource" ref="dataSource" /> 
    <property name="configLocation"> 
     <value>classpath:hibernate.cfg.xml</value> 
    </property> 
    <property name="configurationClass"> 
     <value>org.hibernate.cfg.AnnotationConfiguration</value> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 
      --> 
</bean> 

<tx:annotation-driven /> 

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 
+0

Я прочитал '.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter (Ljava/lang/Class; Ljava/lang/Class; Lorg/springframework/core/convert/converter/Converter;) V , Дополнительную информацию см. В файле server.log. «Это связано с конфликтующими баночками/зависимостями. Но я не знаю, что противоречит ... – Amar

ответ

3

Проблема возникла, когда я адаптировали проект из рабочего мавена + пружины + зимуют проект. В ревностной попытке я обновил pom.xml со всеми последними версиями зависимостей, которые, я думаю, привели к этой проблеме. Но почему это приводит к проблеме, я не уверен. Но пока я вернулся к исходным рабочим (но более старым) версиям зависимостей в pom.xml, и все стало нормально работать. Спасибо за помощь & усилий.

+0

Это обычная проблема с Maven и всей сложностью зависимостей и дублирующимися экземплярами JAR, которые она добавляет. gerardribas правильно относится к делу. Одна из ваших libs вызывает подпись метода, которая не представляет собой версию Spring JAR, которую вы используете.Вам нужно будет посмотреть на Stack Trace, чтобы попытаться выяснить, какой JAR не синхронизирован с JAR Spring Core. Ваш набор инструментов Maven Tool показывает полный список зависимостей (с указанием детей), который вы можете найти, и обычно находите тот, который указан в нескольких версиях. – BrianC

4

Убедитесь, что все банки Spring Framework имеют одинаковую версию. У меня была эта проблема раньше, и это происходит потому, что одна зависимость весеннего фреймворка была в другом номере версии.

Вы можете проверить конфликты с помощью Maven консоли:

mvn dependency:tree -Dverbose 
+0

Если вы видите мой pom.xml, который я опубликовал выше, я использую ' $ {org.springframework.version}'. поэтому я уверен в этом, и конфликт версий не существует. – Amar

+0

Проблема возникла, когда я адаптировал проект из рабочего проекта maven + spring + hibernate. В ревностной попытке я обновил pom.xml со всеми последними версиями зависимостей, которые, я думаю, привели к проблеме. Но почему это приводит к проблеме, я не уверен. Но на данный момент «я вернулся к исходным рабочим (но более старым) версиям зависимостей в pom.xml, и все начало работать отлично». Спасибо за вашу помощь и усилия. – Amar

0

Если текстовое кодирование вашего проекта «Cp1252», замените его на «UTF-8».

0

Просто у одного из наших младших разработчиков здесь была очень похожая ошибка с весенним загрузочным приложением. Оказывается, IntelliJ был испорчен, мы вышли из IntelliJ, удалили папку «.idea» в проекте и снова открылись. После этого все сработало.

Кажется, что, должно быть, было какое-то кэширование, которое IntelliJ делал для хранения библиотек или разрешения зависимостей. И почему-то этот кеш испортился.

Я знаю, что исходное сообщение, упомянутое NetBeans (не IntelliJ), но я решил оставить этот ответ здесь, может помочь. У меня недостаточно репутации для комментариев.

Смежные вопросы