D'État HTTP 405 - la méthode HTTP POST n'est pas pris en charge par cette URL

J'obtiens l'erreur HTTP Status 405 - HTTP method POST is not supported by this URL lorsque j'utilise le code suivant(ci-dessous) ... la ligne à l'origine du problème (apparemment) est getServletContext().getRequestDispatcher("/EditObject?id="+objId).forward(request, response);

package web.objects;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.ObjDetailsDao;

@SuppressWarnings("serial")
public class EditObjectText extends HttpServlet {

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


  int objId = Integer.parseInt(request.getParameter("objId"));
  String text = (String)request.getParameter("description");

  ObjDetailsDao oddao = new ObjDetailsDao();
   try {
oddao.modifyText(text, objId);
 /////////////
    getServletContext().getRequestDispatcher("/EditObject?id="+objId).forward(request, response);
 ////////////
   } catch (SQLException e) {
    //TODO Auto-generated catch block
    e.printStackTrace();
   } catch (ServletException e) {
    //TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
    //TODO Auto-generated catch block
    e.printStackTrace();
        }
      }
}

EDIT: j'ai ajouté le throws ServletException, IOException comme suggéré, mais cela ne change pas l'erreur.

EDIT: le EditObject servlet ressemble à ceci

 @SuppressWarnings("serial")
public class EditObject extends HttpServlet{

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        int objId = Integer.parseInt(request.getParameter("id"));
        dispPage(objId, request, response);
    }

    private void dispPage(int objId, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{        

//... lots of code in here
            getServletContext().getRequestDispatcher("/jsp/objectPageEdit.jsp").forward(request, response);

    }
}

Un AUTRE EDIT: Donc, fondamentalement, je ne peux pas faire ce que je fais. Ce que j'ai besoin est cela, l'utilisateur soumet une requête post et puis je me réfère à lui/elle de retour pour une servlet qui utilise la méthode Get au lieu de Post. Comment puis-je faire cette redirection sans l'obtention de l'erreur? Merci à l'avance.

Où est la servlet qui gère /EditObject ?
la classe servlet ou de la manipulation de l' /EditObject url?
Vous tentez de modifier une méthode POST dans une autre OBTENIR. La façon dont vous le faites est mal. La demande répartiteur ne pas regarder la chaîne de requête. Tout ce qui est mappé sous /EditObject n'est pas en mesure de faire face avec la méthode POST.
J'ai ajouté quelques détails, peut ajouter plus si nécessaire. Merci
vous avez besoin de changer votre méthode doGet dans EditObject à doPost. vous ne savez pas si son influence reste de votre code ou pas.

OriginalL'auteur Ankur | 2010-08-26