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>
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>
Código PHP:
package Ejemplo1;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Saludo extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
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>");
}
}
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!!!