Tomcat - TOMCAT funciona cuando quiere

 
Vista:

TOMCAT funciona cuando quiere

Publicado por Ladybug (1 intervención) el 23/11/2008 20:12:59
He probado de todo, pero esto me supera, y debo entregar mi proyecto pronto para poder titularme. De seguro tengo algo mal configurado. Agradecería cualquier sugerencia o comentario.

Estoy desarrollando una aplicación web con Java, un Servlet y algunos JSP, en Tomcat 6.0.14, usando Ubuntu Gutsy. He desarrollado una clase que se conecta con DB2, la cual he probado infinidad de veces, con una clase de prueba, por consola. La clase de conexion funciona correctamente.

EL PROBLEMA: a pesar de que siempre arranca bien, carga todos los ejemplos que trae de jsp y servlet correctamente, TOMCAT FUNCIONA CUANDO QUIERE, 1) cargando o no mi servlet, 2) perdiendo o no conexiones a DB2, y 3) haciendo nulos o no, valores en las http-sesions. Sin haber hecho ningun cambio en los códigos fuente, Tomcat a veces funciona y a veces no.

LAS SOLUCIONES QUE PROBÉ:
- Ya probé agregando al arrancar el parametro -Xmx pero no veo diferencias. Igualmente Tomcat sigue inestable.
- Ya probé creando la carpeta CATALINAHOME/common/lib (la versión 6 no la trae) y copiando ahí los jar necesarios. Sigo igual que antes.
- Ya probé editando el setclaspath.sh, dado que en las primeras líneas, lo que hace es literalmente, borrar todo el CLASSPATH que haya... pues bien, había un CLASSPATH = "" y lo cambié por un CLASSPATH = $CLASSPATH, para que no me borrara lo que hay, y trabajar sobre esta variable.
- Ya probé arrancando java como server con el parametro -server.

¿Qué otra cosa puedo probar? Acepto cualquier sugerencia (relacionada con mi inquietud, por supuesto).

El detalle de toda la situación está a continuación.

¿Qué estoy usando?
JAVA VERSION: $java -version
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode)

JAVAC VERSION: $javac -version
javac 1.6.0_02

Al arrancar TOMCAT: $sudo /opt/apache-tomcat-6.0.14/bin/./startup.sh
Using CATALINA_BASE: /opt/apache-tomcat-6.0.14
Using CATALINA_HOME: /opt/apache-tomcat-6.0.14
Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.14/temp
Using JRE_HOME: /opt/java/jdk/jre

Es Tomcat quien me ha estado causando problemas. Desarrollé un servlet simple, que gestiona el login de los usuarios, y que utiliza la clase de conexion como un java bean a lo largo de la HttpSession. También me funciona. Lo que no me ha podido funcionar bien es que Tomcat suele "caerse", provocando tres situaciones problema:

1) Tomcat, sin la menor advertencia, haciendo que algunos de los atributos de la sesión tomen valores nulos, o haciendo que las conexiones con db2 se pierdan. Sin embargo, al presionar f5 y recargar el jsp de turno, todo suele volver a la normalidad, y otras veces, no. Se quedan ahí, como valores nulos. La salida de la excepción para este caso es la siguiente:

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

causa raíz

java.lang.NullPointerException
org.apache.jsp.query_002dadd_002d2_jsp._jspService(query_002dadd_002d2_jsp.java:107)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

2) En ocasiones, al arrancar Tomcat, no me carga el servlet (ojo, que no he hecho ningun cambio, es un problema de Tomcat). A veces carga, a veces no, mostrando la siguiente excepción:

javax.servlet.ServletException: Error reservando espacio para una instancia de servlet
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

java.lang.Thread.run(Thread.java:619)

causa raíz

java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:620)

java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
java.net.URLClassLoader.access$000(URLClassLoader.java:56)
java.net.URLClassLoader$1.run(URLClassLoader.java:195)

java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)

java.lang.ClassLoader.loadClass(ClassLoader.java:251)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1273)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)

3) La tercera situación problema, yo creo que se debe al mal funcionamiento descrito en 1) y 2), y sucede que las conexiones que hago con DB2 se pierden, arrojando diversos valores de SQLCODE, SQLSTATE y SQLERROR, según sea la página jsp que esté fallando.

POR FAVOR RESPONDAN.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder