Pessoal, o http status 404 está ocorrendo em um código de exemplo do livro da Kathy Sierra da certificação SCWCD, início do capítulo 3.
Uso o Tomcat. Apenas instalei o .exe, sem fazer qualquer configuração nele (somente configurei as variáveis de ambiente do windows CLASSPATH e TOMCAT_HOME).
Problema:
São 3 arquivos: form.html, web.xml, BeerSelect.class (este está no pacote com.example.web).
Na pasta "webapps" está a pasta da minha aplicação: "Beer-v1". Nesta se encontra o arquivo "form.html" e a pasta "WEB-INF". Na pasta "WEB-INF" há o arquivo "web.xml" e a pasta "classes". Na pasta "classes" está o arquivo "BeerSelect.class" com toda a estrutura de diretório necessária para fazer jus ao package.
Com o Tomcat iniciado, coloco no browser: "http://localhost:8080/Beer-v1/form.html". Tudo OK, abre a página normal. Daí quando clico em "Enviar Dados", surge uma nova página comunicando:
"HTTP Status 404 - /Beer-v1/SelectBeer.do
type Status report
message /Beer-v1/SelectBeer.do
description The requested resource (/Beer-v1/SelectBeer.do) is not available.
Apache Tomcat/6.0.32"
<html>
<body>
<h1 align="center">Beer Solution Page</h1>
<form method="POST"
action="SelectBeer.do">
Select beer characteristics<p>
Color:
<select name="color" size="1">
<option value="light">light</option>
<option value="amber">amber</option>
<option value="brown">brown</option>
<option value="dark">dark</option>
</select>
<br><br>
<center>
<input type="SUBMIT">
</center>
</form></body></html>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.orh/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>Ch3 Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
<url-pattern>/BeerSelect.do</url-pattern>
</servlet-mapping>
</web-app>
package com.example.web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Beer Selection Advice<br>");
String c = request.getParameter("color");
out.println("<br>Got beer color: " + c);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
doPost(request, response);
}
}