С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
44 / 44 / 11
Регистрация: 21.01.2013
Сообщений: 668
1

MockMvc ошибка при запуске теста на метод принимающий RedirectAttributes

10.10.2013, 14:47. Показов 1304. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такой метод контроллера:

Java
1
2
3
4
5
6
@RequestMapping(value = "/updateVacancy", method=RequestMethod.GET )
    public String updateVacancyPRG(Model model,RedirectAttributes redirectAttributes,@RequestParam("idVacancy") Integer idVacancy ){
        redirectAttributes.addAttribute("message", "Submitted Correctly at "+ new Date());
        redirectAttributes.addAttribute("idVacancy",idVacancy);
        return "redirect:goToVacancyDetails";
    }

такой тест
Java
1
2
3
4
5
6
7
8
@Test
    public void updateVacancyPRG() throws Exception{
 
        MockHttpServletRequestBuilder request = MockMvcRequestBuilders
                .get("/updateVacancy");
        request.param("idVacancy", "1");
        ResultActions result = mockMvc.perform(request);//тут летит эксепшн
    }

и такой трейс:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.bind.annotation.support.HandlerMethodInvocationException: Failed to invoke handler method [public java.lang.String com.epam.hhsystem.web.controllers.VacancyMenuController.updateVacancyPRG(org.springframework.ui.Model,org.springframework.web.servlet.mvc.support.RedirectAttributes,java.lang.Integer)]; nested exception is java.lang.IllegalStateException: Argument [RedirectAttributes] is of type Model or Map but is not assignable from the actual model. You may need to switch newer MVC infrastructure classes to use this argument.
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:66)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:168)
    at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:136)
    at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:134)
    at com.epam.hhsystem.web.controllers.VacancyMenuControllerTest.updateVacancyPRG(VacancyMenuControllerTest.java:156)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.springframework.web.bind.annotation.support.HandlerMethodInvocationException: Failed to invoke handler method [public java.lang.String com.epam.hhsystem.web.controllers.VacancyMenuController.updateVacancyPRG(org.springframework.ui.Model,org.springframework.web.servlet.mvc.support.RedirectAttributes,java.lang.Integer)]; nested exception is java.lang.IllegalStateException: Argument [RedirectAttributes] is of type Model or Map but is not assignable from the actual model. You may need to switch newer MVC infrastructure classes to use this argument.
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:181)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
    ... 38 more
Caused by: java.lang.IllegalStateException: Argument [RedirectAttributes] is of type Model or Map but is not assignable from the actual model. You may need to switch newer MVC infrastructure classes to use this argument.
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:322)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
    ... 43 more

самое важное в трейсе наверное это:

Argument [RedirectAttributes] is of type Model or Map but is not assignable from the actual model. You may need to switch newer MVC infrastructure classes to use this argument.

я нагуглил, что надо чтобы спринг был как минимум 3.1, но я использую

3.2.3.RELEASE версию.

Как пофиксить такую проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2013, 14:47
Ответы с готовыми решениями:

Написать файл, принимающий при старте параметр имя приложения при запуске
1.Написать файл,принимающий при старте параметр имя приложения при запуске. файл должен запустить...

Написать командный файл, принимающий 3 параметра при запуске...
1)Написать командный файл принимающий 3 параметра при запуске: 1. Полное имя файла с которым...

Как сделать дозапись в Excel файл при новом запуске теста
есть тест, где заполняется ФИО и группа, в итоге эти данные заносятся в файл rezult.xls. Но при...

При запуске юнит-теста выдаёт "KeyError: 'ls_groups'"
Добрый день ув. программисты - помогите решить проблему. Смысл такой - мне нужно используя...

2
Sakralbar
10.10.2013, 17:50
  #2

Не по теме:

Цитата Сообщение от gredwhite Посмотреть сообщение
Java
1
com.epam.hhsystem
теперь я, похоже, знаю в какой фирме и над каким проектом вы работаете 8-)

0
44 / 44 / 11
Регистрация: 21.01.2013
Сообщений: 668
10.10.2013, 19:25  [ТС] 3
Цитата Сообщение от Sakralbar Посмотреть сообщение

Не по теме:

теперь я, похоже, знаю в какой фирме и над каким проектом вы работаете 8-)

полезное знание

вылечилось добавлением такой строчки в конфигурацию:
<mvc:annotation-driven />
0
10.10.2013, 19:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2013, 19:25
Помогаю со студенческими работами здесь

Метод принимающий делегат
Написать статический метод, возвращающий количество элементов одномерного массива целых чисел....

При запуске теста Google test в Qt Creator вылетает "Sementation fault"
Прикрутил Гугл-тест к Креатору. Написал тест по мануалу. При запуске - Sementation fault в строке...

Метод принимающий индекс массива
public class Main { public static void main(String args) { Fabryka fabryka = new...

Метод, принимающий массив объектов
#include &lt;iostream&gt; using namespace std; class A { private: int a; public: //int a; A()


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru