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

Servlet reconocido en Tomcat 5 pero no en Tomcat 4

Estas en el tema de Servlet reconocido en Tomcat 5 pero no en Tomcat 4 en el foro de Java en Foros del Web. Hola compañeros: Antes de nada quiero aclarar que soy de los que antes de preguntar algo en un foro intenta sacar sus propias conclusiones experimentando ...
  #1 (permalink)  
Antiguo 25/01/2007, 03:49
Avatar de Negora  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 5
Servlet reconocido en Tomcat 5 pero no en Tomcat 4

Hola compañeros:

Antes de nada quiero aclarar que soy de los que antes de preguntar algo en un foro intenta sacar sus propias conclusiones experimentando y consultando la información existente en Internet. Sin embargo, en este caso, es que no sé qué hacer ya :S .

Desarrollo mediante el entorno NetBeans v. 3.6 y pruebo los resultados a través del servidor Tomcat 5 que integra éste, la versión v. 5.0.19. He creado un servlet que se encarga de alterar imágenes mediante un lenguaje de comandos muy sencillo que he implementado. El caso es que bajo este Tomcat es reconocido sin problemas, habiéndolo declarado en "web.xml". Todo correcto.

Sin embargo, he subido todo lo necesario a un servidor de producción en el que se encuentra instalado Tomcat v. 4.1.18 y no ha habido manera de que éste lo mapee correctamente.

He leido que la versión 4 es más "pijotera" a la hora de leer el archivo "web.xml" (por ejemplo, para el asunto de las tabulaciones), así que eliminé todo lo innecesario (comentarios, etiquetas de descripciones...), hasta dejar un archivo de pocos bytes. Y aun así me sigue devolviendo un mensaje de error con "HTTP Status 404", indicando que el recurso no se encuentra disponible.

El archivo "web.xml" en cuestión tiene el siguiente aspecto:

Código:
<?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>
<servlet>
<servlet-name>DirectImage</servlet-name>
<servlet-class>my.package.DirectImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DirectImage</servlet-name>
<url-pattern>/DirectImage</url-pattern>
</servlet-mapping>
</web-app>
Para acceder al servlet, se crea una URL con la siguiente estructura: http://mydominio.com/aplicacion/DirectImage .

Con Tomcat 5 me funciona, pero no con Tomcat 4. He de indicar también que las pruebas con Tomcat 5 las hago sólo localmente, llamando a "localhost:8084" Sin embargo, no creo que esto tenga que ver, ya que las llamadas a las URLs, evidentemente, siempre las hago de forma relativa. Por ejemplo, desde un "index.jsp" en "/aplicacion", llamo a "/DirectImage?param1=val1&param2=val2".

Si alguien puede echarme una mano, estaría muy agradecido, pues me ha llevado bastante tiempo crear esta utilidad y ahora no puedo utilizarla como quisiera :/ .

Muchas gracias :) .
  #2 (permalink)  
Antiguo 25/01/2007, 06:11
Avatar de Negora  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Servlet reconocido en Tomcat 5 pero no en Tomcat 4

Se me olvidó comentar que al sitio web del servidor se accede mediante certificado SSL. No sé si esto afectará en algo a las rutas que se mapean para los servelts.
  #3 (permalink)  
Antiguo 25/01/2007, 07:24
Avatar de Negora  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Servlet reconocido en Tomcat 5 pero no en Tomcat 4

Bueno, tras muchísimos dolores de cabeza, ya está localizado el error. Se debe a un bug de Tomcat 4 que ya está solucionado en la versión 5. Más información aquí: http://issues.apache.org/bugzilla/show_bug.cgi?id=9016 .

No explican exactamente el origen del problema, pero al menos ya sé que no hay manera de solventarlo.

Espero que le sea de ayuda a algún otro que se encuentre con un problema semejante.
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 11:52.