Foros del Web » Programación para mayores de 30 ;) » Java »

No puedo llegar a mi servlet desde el HTML, pasando por el web.xml

Estas en el tema de No puedo llegar a mi servlet desde el HTML, pasando por el web.xml en el foro de Java en Foros del Web. Hola que tal!! Voy a hacer este tema lo mas descriptivo posible a ver si alguien me puede brindar una buena solución: Estoy intentando reproducir ...
  #1 (permalink)  
Antiguo 25/07/2009, 00:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Exclamación No puedo llegar a mi servlet desde el HTML, pasando por el web.xml

Hola que tal!!

Voy a hacer este tema lo mas descriptivo posible a ver si alguien me puede brindar una buena solución:

Estoy intentando reproducir un ejemplo de estos que se encuentran en internet para llamar desde un HTML a un Servlet, pero hay algo que no me está andando y no se que...

Lo que estoy utilizando para poder realizar el despliegue es el Tomcat 5.5, desde el Eclipse.
El JDK que me bajé es el último hasta el momento, que es el 1.6 Java EE.

Ya estuve leyendo mucho sobre que puede ser pero la verdad que no encuentro la solución al error que me está arrojando el Tomcat:

Tengo el archivo HTML llamado Saludo.html con el siguiente contenido:

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Saludo</title>
</head>
<body>
	<form action="/ejemploSaludo/Ejemplo1" method="post">
		<p>Pulse Enviar para llamar al servlet 'Saludo'</p>
		<p><input type="submit" name="Submit" value="Enviar"></p>
	</form>
</body>
</html> 
Luego, tengo el archivo web.xml con el siguiente contenido:

Código HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app version="2.4">	
	
	<welcome-file-list>
		<welcome-file>Saludo.html</welcome-file>
	</welcome-file-list>

	<servlet>
	  <servlet-name>Saludo HOLA</servlet-name>
	  <servlet-class>Saludo</servlet-class>
	</servlet>
	<servlet-mapping>
	  <servlet-name>Saludo HOLA</servlet-name>
	  <url-pattern>/Ejemplo1</url-pattern>
	</servlet-mapping>

</web-app> 
y por último mi archivo Saludo.java, que contiene lo siguiente:

Código PHP:
package Ejemplo1;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class 
Saludo extends HttpServlet {
    
  public 
void doPost(HttpServletRequest requestHttpServletResponse responsethrows ServletExceptionIOException {
      
      
response.setContentType("text/html");
      
PrintWriter out response.getWriter();
      
out.println("<html>");
      
out.println("<head><title>Saludo</title></head>");
      
out.println("<body bgcolor=\"#ffffff\">");
      
out.println("<p>¡ Hola mundo !</p>");
      
out.println("</body></html>");
      
  }

(lo puse en código PHP, pero demas está aclarar que es código JAVA.)

Vale aclarar que el nombre del proyecto en el Eclipse se llama "ejemploSaludo", y dentro de la carpeta Java Resources : src, tengo el package Ejemplo1, donde adentro se encuentra el Saludo.java

Una vez desplegado en el Tomcat, en la carpeta donde me realiza el Deploy me fijo y me figura lo siguiente:

Una carpeta llamada como el nombre del proyecto del eclipse (ejemploSaludo). Dentro de esta, tengo dos carpetas (META-INF y WEB-INF) y el Saludo.html. Dentro de la carpeta WEB-INF tengo dos carpetas mas (classes y lib) y el archivo web.xml. Por último, dentro de la carpeta classes solamente tengo una carpeta con el nombre de Ejemplo1, la cual solamente contiene el archivo "Saludo.class"

Se que es medio dificil de seguir, pero quien ya haya tenido experiencia en este tipo de cosas me entenderá claramente.

A continuación les voy a adjuntar el error que me está tirando el Tomcat.

Estado HTTP 500 -

type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: El Arropador (Wrapper) no puede hallar clase de servlet Saludo o una clase de la que depende
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:875)
org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:619)

causa raíz

java.lang.ClassNotFoundException: Saludo
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1386)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1232)
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:875)
org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:619)

nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/5.5.27.

Googleando mucho, me encontré con que el motivo del error puede ser que las variables de entorno PATH y CLASSPATH estén mal definidas.

Lo que actualmente tengo en dichas variables es lo siguiente:

PATH:
C:\Java\Programacion\JDK\bin
(En este lugar es donde instalé el JDK, bajado desde la página de Sun)

CATALINA_HOME:
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5

CLASSPATH:
C:\Archivos de programa\Java\jre6\lib\ext\QTJava.zip;%CLASSPATH%; %CATALINA_HOME%\common\lib\servlet-api.jar;.


Ya no se que datos mas poner!

Necesito que me den una mano ya que la verdad es que me estoy volviendo loco tratando de hacer andar esto y no puedo.

Si detenctan el error, por favor indicarlo claramente!

Muchísimas gracias y disculpen las molestias

Saludos!!!
  #2 (permalink)  
Antiguo 26/07/2009, 00:00
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: No puedo llegar a mi servlet desde el HTML, pasando por el web.xml

Estas mapeando el Servlet de 2 maneras diferentes, fijate:

Asi en el HTML:
/ejemploSaludo/Ejemplo1

Asi en Web.xml:
/Ejemplo1
  #3 (permalink)  
Antiguo 26/07/2009, 12:41
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: No puedo llegar a mi servlet desde el HTML, pasando por el web.xml

Ahora voy a probar... pero siempre tienen que estar igual el HTML con el web.xml?

Ahora me fijo y te digo si me anduvo o no!

Muchas gracias
  #4 (permalink)  
Antiguo 26/07/2009, 20:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: No puedo llegar a mi servlet desde el HTML, pasando por el web.xml

No... la verdad que no pude!

Sigo trabado...

Alguna otra idea??

Muchas gracias!!
  #5 (permalink)  
Antiguo 27/07/2009, 06:24
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: No puedo llegar a mi servlet desde el HTML, pasando por el web.xml

Wenas

Código:
 <servlet>
    <servlet-name>misuperservlet</servlet-name>
    <servlet-class>Ejemplo1.Saludo</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>misuperservlet</servlet-name>
      <url-pattern>/Ejemplo1</url-pattern>
    </servlet-mapping>
Saludos.
  #6 (permalink)  
Antiguo 27/07/2009, 06:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: No puedo llegar a mi servlet desde el HTML, pasando por el web.xml

Ya solucioné mi problema!!

El código me quedó de la siguente manera:
Saludo.html:
Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Saludo</title>
</head>
<body>
	<form action="/ejemploSaludo/Ejemplo1" method="post" name="Saludos">
		<p>Pulse Enviar para llamar al servlet 'Saludo'</p>
		<p><input type="submit" name="Submit" value="Enviar"></p>
	</form>
</body>
</html> 
web.xml:
Código HTML:
<?xml version="1.0" encoding="UTF-8"?>
	
	<welcome-file-list>
		<welcome-file>Saludo.html</welcome-file>
	</welcome-file-list>

	<servlet>
	  <servlet-name>Saludos</servlet-name>
	  <servlet-class>Ejemplo1.Saludo</servlet-class>
	</servlet>
	<servlet-mapping>
	  <servlet-name>Saludos</servlet-name>
	  <url-pattern>/Ejemplo1</url-pattern>
	</servlet-mapping>

</web-app> 
Gracias por todo!

Saludos!

Última edición por dipson; 27/07/2009 a las 07:10
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:27.