2016-06-28 8 views
0

У меня есть веб-приложение Spring 4, которое работает на WebSphere 7, и я также могу использовать Jetty для локальной разработки. Я не могу измениться с WAS, и я не могу изменить версию. Я реорганизую очень устаревшее приложение и пытаюсь добавить Spring для работы с функциональностью, и я реорганизую данные из сервлетов.Контроллер весны не принимает значения HttpServletRequet или @PathVariable или @ModelAttribute

У меня есть пара контроллеров, которые отлично работают в Jetty. Вот несколько моих запросов отображений:

@RequestMapping(value = "/bank/{routingNumber}", method = RequestMethod.GET) 
@ResponseBody 
public NACHABank getNachaBank(@PathVariable String routingNumber) { 
    return bankingService.loadBankByRoutingNumber(routingNumber); 
} 

@RequestMapping(value = "/payment/accountType", method = RequestMethod.POST) 
public String createPaymentBatch(@ModelAttribute PaymentRequest paymentRequest, HttpServletRequest request) { 
    //do some stuff 
    return jspName; 
} 

Когда я бегу в WAS (как локально, так и в моей тестовой среде), то @PathVariable routingNumber равно нулю. В другом запросе сопоставление @ModelAttribute paymentRequest и HttpServletRequest request являются нулевыми.

Когда я бегу в Причале, их нет и все работает.

В WAS у меня нет ошибок при запуске сервера, и я получаю обычные стартовые сообщения Spring. Мои конечные точки отображаются именно:

[6/28/16 10:20:30:695 CDT] 00000025 RequestMappin I org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register Mapped "{[/bank/{routingNumber}],methods=[GET]}" onto public com.company.domain.NACHABank com.company.view.controller.BankController.getNachaBank(java.lang.String)

[6/28/16 10:20:30:726 CDT] 00000025 RequestMappin I org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping register Mapped "{[/payment/paymentType],methods=[POST]}" onto public java.lang.String com.company.view.controller.PaymentController.createPaymentBatch(com.company.view.request.PaymentRequest,javax.servlet.http.HttpServletRequest)

Что может быть причиной такого поведения?

ответ

1

Я прошел через свою историю совершения сделки, я знал, что это сработало в какой-то момент. Несколько месяцев назад я обновился до версии 4.3 4.3 от 4.1.1, и именно это привело к тому, что контроллеры сломались. Я понизился до 4.1.1, и теперь все работает.

+0

На самом деле, при некоторых обстоятельствах все, что вам нужно, это просто «Очистить и построить» проект, обновление не должно быть проблемой, понижение - это ..., btw +1 для предоставления ответа. –

+1

Добро пожаловать. В этом случае недостаточно «mvn clean install». По неизвестной причине Spring 4.3 не будет работать. Моим тестовым средам был предоставлен новый файл уха, построенный в чистой рабочей области от Дженкинса. Это старая база кода, которая все еще полагается на TopLink и некоторые другие древние библиотеки, которые моя компания вынудила все проекты использовать в течение дня. Я сделал подтяжку интерфейса, но не смог удалить все дерьмо и перейти на Tomcat для этого проекта. –