Я следовал совету, даваемому 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:
Инструменты:
- easmock-3,0 (с CGLIB-nodep-2.2.jar транзитивной зависимостью)
- весенне-х-4.0.0. RELEASE (с переупакованным CGLIB версии? классы)
- JUnit-4.8.1
Исключая я e переходная зависимость cglib-nodep явно не помогла - все тесты, в том числе non-sring-aop, тоже начали сбой.
Я также попробовал ответить here: очистка целевой папки перед повторным запуском тестов без успеха.
Является ли эта проблема действительно из-за конфликта версий cglib, как я думал, что это будет? Если да, то в чем правильная версия, которую я должен использовать, это остановит загрузку моего класса дважды.
Проверьте, для чего используются все зависимости. Проверьте папку WEB-INF/lib или используйте представление иерархии зависимостей в редакторе eclipse pom, чтобы узнать дубликаты банок, удалить более старую версию. –
У меня не было дубликатов в семействе cglib. Весенние люди переупаковывали классы cglib в их весеннее ядро, то есть cglib не является транзитивной зависимостью, которая появится в представлении зависимости pom для того, чтобы мы увидели дублированные версии. – mystarrocks
вы можете проверить следующую ссылку: https://jira.springsource.org/browse/SPR-10242 –