Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/11/2008, 15:48
Avatar de congonga
congonga
 
Fecha de Ingreso: febrero-2008
Ubicación: Concepción
Mensajes: 29
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: invoker: No puedo reservar espacio para instancia de servlet para trayecto

Hola a todos. Yo también tengo problemas con Tomcat, y he recorrido mucho buscando cuál es el error. 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.

¿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

Por el contrario, para mi pesar, 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.handle JspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:435)

org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.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(Http JspBase.java:70)

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

org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.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.servic e(CoyoteAdapter.java:263)

org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.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(Secure ClassLoader.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.j ava:188)
java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:276)

java.lang.ClassLoader.loadClass(ClassLoader.java:2 51)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1273)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1204)

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

org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.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.

Agradería cualquier sugerencia o comentario.