Весна 3.2.8 и выпуск Junit 4 с JDK 8 - PullRequest
0 голосов
/ 29 января 2019

Я настроил Junit 4 с Spring 3.2.8, где я использовал JDK 8. Вот мой класс тестового контроллера

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { WebConfig.class })
public class TManagerTest {

    @Autowired
    private TestManager  testManager ;

    @Test
    public void test() {
        this.testManager.getAll();
    }

}`

Когда я пытаюсь запустить приложение, я получаю эту ошибку:

ASM ClassReader не удалось проанализировать файл класса - возможно, из-за новой версии файла класса Java, которая пока не поддерживается: file ././TManagerTest .java

Когда япроблема поиска Я обнаружил поддержку Spring 3.x вплоть до JDK 7. Поэтому он должен компилироваться с JDK 7, но мы можем использовать JRE 8.

Это правда?Если да, мой вопрос, когда я создаю классы с аннотированными @Service, @Controller и запускаю приложение, оно работает нормально.Почему ошибка возникает только с junit?Если это так, то он не должен работать с другими, кроме junit.

Если я хочу использовать пружину 3.2.8, с jdk 8.

1 Ответ

0 голосов
/ 29 января 2019

Вам нужен Spring 4, если вы хотите скомпилировать код для Java 8 (цель 1.8), но вы все равно можете запускать приложения на Java 8, скомпилированные для Java 7, если вы работаете на Spring 3.2.x.

Согласно справочная документация по пружине :

Обратите внимание, что уровень байт-кода Java 8 (-target 1.8, как того требует -source 1.8) полностью поддерживается только в Spring Framework 4.0.В частности, приложения, основанные на Spring 3.2, должны быть скомпилированы с максимумом Java 7 в качестве цели, даже если они случайно развернуты во время выполнения Java 8.Пожалуйста, обновитесь до Spring 4 для приложений на основе Java 8.

...