Статус HTTP 405 — HTTP-метод POST не поддерживается этим URL-адресом

Я пытаюсь отправить некоторые данные, но кажется, что контроллер не может быть найден или не может обработать запрос.

test.jsp

<%@ page errorPage="exception.jsp"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page session="true" import="java.io.*,java.util.*"%>
<%@ page import="eng.ku.sku.exceed_vote.knt.*"%>


  <form name="AddForm" action="addtext" method="POST">
     <input type="hidden" name="todo" value="add">

Add text:<input type="text" name="text" />

    <input type="submit" value="Add">
  </form>

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                        

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>exceed</servlet-name>
<servlet-class>eng.ku.sku.exceed_vote.knt.Controller</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>exceed</servlet-name>
<url-pattern>/addtext</url-pattern>

Контроллер.java

package eng.ku.sku.exceed_vote.knt;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet("/addtext")
public class Controller extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
      doPost(request, response);  // Same as doPost()
    }

    @Override
    protected void doPost(HttpServletRequest request,
         HttpServletResponse response) throws ServletException, IOException {

      // Retrieve the current session, or create a new session if no session exists.
      HttpSession session = request.getSession(true);
      System.out.println("HIIEER");
      // Retrieve the shopping cart of the current session.


      // For dispatching the next Page
      String nextPage = "";
      String todo = request.getParameter("todo");

     // Dispatch to checkout.jsp
     nextPage = "/checkout.jsp";

     response.sendRedirect(nextPage);
     return;
   }
}

Прочитал много других тем, но решения не нашел. Я надеюсь, что вы можете мне помочь :)


person user1671980    schedule 14.09.2012    source источник
comment
Вы, кажется, не запускаете код, который, по вашему мнению, вы используете. Попробуйте пересобрать/повторно развернуть/перезапустить. Кстати, зачем дублировать регистрацию сервлетов через web.xml и @WebServlet? Используйте тот или иной после согласования неправильной версии web.xml.   -  person BalusC    schedule 14.09.2012
comment
в чем ошибка? Вы можете добавить трассировку стека?   -  person Chris    schedule 14.09.2012
comment
@Chris: это уже в названии. Это именно то, что вы получите в веб-браузере, когда doPost() сервлета не реализовано или он неправильно вызывает super.doPost(req, res) где-то внизу в методе.   -  person BalusC    schedule 15.09.2012


Ответы (1)


Хорошо, это была неправильная конфигурация Tomcat.

Он не синхронизировал изменения проекта.

person user1671980    schedule 15.09.2012