2014-02-13 3 views
0

Я следовал совету, даваемому here, чтобы попробовать некоторые модульные тесты с использованием методов, поддерживающих пружину. Тем не менее, я подозреваю, что переупакованные классы cglib под пружинным ядром и cglib-nodep-2.2.jar конфликтуют друг с другом, заставляя мой класс быть проксированным для загрузки загрузчиком классов дважды. Это приводит к следующей ошибке:Easymock3 Spring4.0.0.RELEASE совместимость cglib

Caused by: java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definition for name: 

Инструменты:

  1. easmock-3,0 (с CGLIB-nodep-2.2.jar транзитивной зависимостью)
  2. весенне-х-4.0.0. RELEASE (с переупакованным CGLIB версии? классы)
  3. JUnit-4.8.1

Исключая я e переходная зависимость cglib-nodep явно не помогла - все тесты, в том числе non-sring-aop, тоже начали сбой.

Я также попробовал ответить here: очистка целевой папки перед повторным запуском тестов без успеха.

Является ли эта проблема действительно из-за конфликта версий cglib, как я думал, что это будет? Если да, то в чем правильная версия, которую я должен использовать, это остановит загрузку моего класса дважды.

+0

Проверьте, для чего используются все зависимости. Проверьте папку WEB-INF/lib или используйте представление иерархии зависимостей в редакторе eclipse pom, чтобы узнать дубликаты банок, удалить более старую версию. –

+0

У меня не было дубликатов в семействе cglib. Весенние люди переупаковывали классы cglib в их весеннее ядро, то есть cglib не является транзитивной зависимостью, которая появится в представлении зависимости pom для того, чтобы мы увидели дублированные версии. – mystarrocks

+0

вы можете проверить следующую ссылку: https://jira.springsource.org/browse/SPR-10242 –

ответ

0
<properties> 
    <java.version>1.7</java.version> 
    <spring.version>4.0.3.RELEASE</spring.version> 
    <cglib.version>2.2.2</cglib.version> 
</properties> 
+0

Вы осознаете возраст этого вопроса? – jwenting

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