Spring MVC - HTTP Status 405 - Request method 'POST' not supported

0

Nie mam pojęcia dlaczego gdy wysyłam formularz żądaniem POST otrzymuję komunikat "HTTP Status 405 - Request method 'POST' not supported". Poniżej znajduje się fragment kodu z formularzem:

<form method="POST" action="imageProcessor/uploads" enctype="multipart/form-data" modelAttribute="uploadForm">
	<label for="files">Obrazy:</label> 
    <input type="file" name="files" id="files" class="form-control" multiple="true"></input>
    <div style="clear: both; display: block; height: 10px;"></div>
    <input type="submit" class="btn btn-success" value="Przeslij" />
	<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</form>

A to metoda, która powinna obsłużyć żądanie:

@RequestMapping(value = "/uploads", headers = "content-type=multipart/*", method = RequestMethod.POST)
public String uploadFile(@ModelAttribute(value="uploadForm") final FilesUploadFormEntity filesForm, Model model){
          
    String processInfo = this.imageService.processImages(filesForm);
          
	model.addAttribute("processResult", processInfo);
          
	return "index";
}

Przed nazwą kontrolera, w którym jest umieszczona powyższa metoda znajduje się linijka:
@RequestMapping("/imageProcessor")
Jak debugowałem kod to okazało się, że metoda uploadFile nawet nie zostaje uruchomiona. W jaki sposób mogę to naprawić?

0

Nie, adres jest poprawny czyli "localhost:9000/nazwaaplikacji/imageProcessor/uploads", z tym że u mnie powinno to wyglądać tak "localhost:9000/nazwaaplikacji/project/imageProcessor/uploads". Najpierw jestem na stronie localhost:9000/nazwaaplikacji/project potem po wciśnięciu buttona przenoszę się na localhost:9000/nazwaaplikacji/project/imageProcessor/ i do tego momentu wszystko działa.

0

a sprobuj bez headers?

0

Nic to nie dało.

0

Weź zwykły GET zmapuj na start i sprawdź w przeglądarce. Później przemianuj na POST i dodaj inne potrzebne rzeczy przy czym sprawdzaj po drodze czy działa, tak będzie najszybciej :)

0

Sprawdź dobrze argumenty metody przechwytującej to żądanie w kontrolerze. Za pomocą przeglądarkowego debbugera możesz sprawdzić, czy na pewno do metody trafia to co powinno. Bardzo prawdopodobne, że nie i dlatego nie można dopasować metody.

1

@Biały Kruk Firefox + TamperData plugin. Przechwytujesz ty request który wysyła twórz formularz i sprawdzasz co sie tam nie zgadza...

0

Swego czasu też miałem problemy z uploadem multipart, przy debugowaniu zwróć też uwagę na typy - jakiego typu przesyłasz, a jakiego typu oczekujesz w kontrolerze. Może z rzutowaniem są jakieś problemy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1