Ich bin dieses Problem in Bezug auf JSP nicht PUT Anfrage zu akzeptieren. Ich frage mich, wie ich das beheben kann. Ich habe diese verwandte Frage im Stapelüberlauf gelesen, aber es erklärt nicht, wie man es repariert.405 JSP Fehler mit Put-Methode
HTTP Status 405 - JSPs only permit GET POST or HEAD
Von Rails Hintergrund, ich versuche, es zu machen, so verwende ich die Schienen REST-Stil wie PUT für Updates und DELETE für Löschungen der Benutzerressource.
Wenn jedoch ein Fehler in diesem Controller auftritt, wird versucht, die Anforderung an die ursprüngliche JSP zurückzugeben, aber Tomcat 8.0.9 akzeptiert die Anforderung nicht und gibt folgenden Fehler aus: "HTTP-Status 405 - JSPs erlauben nur GET POST oder KOPF". Ich habe versucht, readonly in der Tomcat web.xml zu deaktivieren - es hatte keinen Effekt und ich bekomme immer noch den Fehler. Ich habe es auf POST-Methode umgestellt und der Ablauf funktioniert gut.
Gibt es eine Möglichkeit, die Forward-POST-Methode zu erzwingen und trotzdem die PUT-Methode für die Anforderung zu akzeptieren?
/**
* Edit a user account.
* @return the edit user view
*/
@RequestMapping(value = {"/update/{userId}"}, method = RequestMethod.PUT)
public String updateUser(@Valid @ModelAttribute("user") User user, BindingResult result, final RedirectAttributes redirectAttributes)
{
logger.debug(user);
// we check for duplicate email addresses during the update operation.
List<User> userCheckList = userRepository.findByEmail(user.getEmail());
if (userCheckList.size() > 0)
{
// size of list should only ever be 1
User userCheck = userCheckList.get(0);
if (userCheck.getId() != user.getId())
{
result.rejectValue("email", "error.user", "An account already exists for this user email address.");
}
}
if (result.hasErrors())
{
return "admin.users.edit";
}
// we locate the user and add it to the model
userRepository.save(user);
// the save operation was successful so we show the user message.
redirectAttributes.addFlashAttribute("user", user);
redirectAttributes.addFlashAttribute("message", "Updated successfully");
String viewName = "redirect:/admin/users";
logger.debug(viewName);
return viewName;
}
das kann Ihnen helfen http://www.codereye.com/2010/12/configure-tomcat-to-accept-http-put.html – mahesh
danke ich habe das schon versucht, aber es hatte keine Wirkung, gleich Fehler passiert. –