2011-05-04 14 views
6

estoy consiguiendo el error sometido, ¿podría ayudar aHTTP GET método no es compatible con esta URL

servlet

public class FirstClass extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    public void doGet(HttpServletResponse response, HttpServletRequest request) throws IOException, ServletException { 
     PrintWriter out = response.getWriter(); 
     out.println("this is a sample"); 
     out.flush(); 
    } 

    public void doPost(HttpServletResponse response, HttpServletRequest request) throws IOException, ServletException { 
     PrintWriter out = response.getWriter(); 
     out.println("this is a sample"); 
     out.flush(); 
    } 
} 

Web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>hii</display-name> 

    <servlet> 
     <servlet-name>First</servlet-name> 
     <servlet-class>test.FirstClass</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>First</servlet-name> 
     <url-pattern>/first.do</url-pattern> 
    </servlet-mapping> 

    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
    <a href="first.do">Click Me</a> 
</body> 
</html> 

Respuesta

12

que tienes los parámetros al revés - que debería ser la primera solicitud, entonces la respuesta, así:

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

Así que actualmente no está realmente reemplazando el método de la superclase.

Es por eso que la anotación @Override es tan importante, le permite encontrar errores como este en tiempo de compilación. Si hubiera decorado su método con @Override, el compilador habría detectado que estaba intentando anular la firma de un método que no existía.

+0

Sí ... por ejemplo, la llamada es doGet (solicitud, respuesta) en java Google App Engine – Paul

+0

gracias ... se encargará de más, problema resuelto – user1448652

0

También falla para PO ¿S T?

no debería <servlet-class>test.FirstClass ser <servlet-class>FirstClass en su lugar?

+0

prueba es el paquete donde se define la clase – user1448652

+0

Hmm, esa parte debería estar bien. También sospecho el orden de llamada que menciona Jon. Si el orden de llamada es incorrecto, POST no funcionará. – Paul

+0

ya lo corrijo ... gracias – user1448652

Cuestiones relacionadas