Ayuda con Tomcat y Servlet

johano
26 de Octubre del 2005
Saludos a todos, de antepano gracias por leer este post y espero me puedan ayudar:

Estoy realizando el ejemplo "HolaServlet" para trabajar con servlets y el servidor web Tomcat el cual genera una pagina HTML, pero aun no me funciona.

Tengo la version de Java: JDK 1.4.1
Tengo la version de Tomcat: jakarta-tomcat-4.1.12-LE-jdk14

Por el WEBSERVER cargo la pagina asi(La cual carga bien):
http://localhost:8080/HolaServlet.htm

Y en el DISCO DURO esta en la direccion:
D:jakarta-tomcat-4.1.12-LE-jdk14webappsROOTHolaServlet.htm

El codigo de la pagina que carga el servlet es el siguiente:
<FORM ACTION="http://localhost:8080/servlet/HolaServlet" METHOD="post">

La clase HolaServlet.java y HolaServlet.class estan en:
D:jakarta-tomcat-4.1.12-LE-jdk14webappsROOTWEB-INFclassesHolaServlet.java
D:jakarta-tomcat-4.1.12-LE-jdk14webappsROOTWEB-INFclassesHolaServlet.class

Pero al pulsar el boton que me debe devolver la pagina creada por el servlet me sale el siguiente mensaje:

The requested resource (/servlet/HolaServlet) is not available.

Alguien me puede explicar q es lo que estoy haciendo mal, si es algo en el classpath o que, por favor ayundenme ya que tengo varios dias tratando de realizar este ejemplo y aun no me sale. Tengo bien configurado el Tomcat porque ya he probado cuando subo el servidor web y me carga las paginas que deseo, lo que no me esta funcionando es el request del servlet. No se si es que debo configurar algo al la variable CLASSPATH.

Gracias anticipadas:

johano
26 de Octubre del 2005
Por favor ayudenme a configurarlo, segun estuve leyendo alguno post anteriores, veo q tambien tiene que ver el archivo WEB.XML, favor ayuda!!!

Pedro
26 de Octubre del 2005
¿Donde has puesto la clase HolaServlet.class?

johano
26 de Octubre del 2005
Esta clase la tengo en la direccion:

D:jakarta-tomcat-4.1.12-LE-jdk14webappsROOTWEB-INFclassesHolaServlet.class

Tambien no sabía que había que configurar el archivo web.xml. Segun pude ver, en las etiquetas lo configure asi:

<servlet>
<servlet-name>HolaServlet </servlet-name>
<servlet-class> HolaServlet </servlet-class>
</servlet>

Y aun asi no me funciona. Lo estoy haciendo a lo plano sin ningun ID porq es que lo quiero aprender de raiz, para luego utilizarlo con netbeans.

enaj
26 de Octubre del 2005
Se me olvidaba una cosa. Es mejor que crees tu propia carpeta para guardar tu aplicación. Del anterior post sólo tienes que cambiar el nombre ROOT por el nombre de la carpeta de tu aplicación. La estructura básica de directorios es la siguiente:
+/webapps
+-----/aplicacion
+----------/WEB-INF
+---------------/classes
+---------------web.xml
+----------------/lib

enaj
26 de Octubre del 2005
Hola!!! Prueba a ver si te funciona el siguiente descriptor de despliegue:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- General description of webapp -->
<display-name>Mi servlet</display-name>
<description>Mi servlet hola</description>
<servlet>
<servlet-name>Hola</servlet-name>
<servlet-class>HolaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hola</servlet-name>
<url-pattern>/UrlHola</url-pattern>
</servlet-mapping>
</web-app>

El fichero web.xml tiene que ir en la ruta D:...webappsROOTWEB-INFweb.xml

Para hacer una petición post al servlet hay que hacerla a la siguiente URL: http://localhost:8080/ROOT/UrlHola

Si usas una versión de Tomcat menor a la 5 tienes que modificar el fichero de configuración server.xml.

Espero que te funcione