пружинный контроллер вызывается дважды - PullRequest
0 голосов
/ 08 июля 2011

Это сводит меня с ума. У меня есть простое весеннее приложение с файлом контекста сервлета, настроенным так:

<context:component-scan base-package="au.com.mypackage.service" />
<context:annotation-config />
<mvc:annotation-driven />

И простой контроллер:

@Controller
public class MyController {

    @RequestMapping(value = "/data/{id}", method=RequestMethod.GET)
    @ResponseBody public Bean getData(@PathVariable String id) {
        Bean bean = new Bean();
        bean.setSomething("hello");
        bean.setSomethingElse(5);
        return bean;
    }

Который использует конвертеры сообщений для своей работы. Затем я отправляю этот запрос от SoapUI:

GET http://localhost:8080/spring/data/123 HTTP/1.1

Accept-Encoding: gzip,deflate

Accept: application/json

User-Agent: Jakarta Commons-HttpClient/3.1

Host: localhost:8080

И, похоже, работает нормально. НО, когда я просматриваю логи tomcat, я вижу, что контроллер вызывается дважды. Это нормально для JSON. Но когда я переключаюсь на запрос XML, он идет ужасно неправильно. Второй запрос (который не должен произойти в любом случае) запускается как массивная ошибка в XStream из-за закрытия сокетов и т. Д.

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

1 Ответ

0 голосов
/ 08 июля 2011

Решил это.Кажется, проблема в SoapUI.Я переключился на WizTools RESTClient, и двойные вызовы прекратились.Я не знаю, почему SoapUI делал это, хотя у меня сложилось впечатление, что второй вызов всегда был для XML независимо от того, для чего был первый вызов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...