JSP (Java Server Page) - Tomcat5.5.9 + MySQL = HTTP 500

 
Vista:

Tomcat5.5.9 + MySQL = HTTP 500

Publicado por ZacJack (9 intervenciones) el 04/11/2005 05:03:49
Hola a todos!!!

hace unos dias inicie un proyecto en JSP, pero me he quedado estancado en la conexion con la base

de datos, he leido bastante informacion acerca de la configuracion para establecer dicha

conexion, pero sigo recibiendo errores. --- realice algunos cambios y el error que recibo

actualmente es diferente al inicial.--- en la documentacion Tomcat, (por cierto estoy trabajando

con apache 2.0.54, Tomcat 5.5.9, MySQL Server 5.0) hay una conexion de ejemplo, la cual despues

de seguir todos los pasos, tampoco funciona.

el error que recibo actualmente es el siguiente:

********************************************************************************
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

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

causa raíz

java.lang.NullPointerException
org.apache.jsp.equipo_jsp._jspService(org.apache.jsp.equipo_jsp:62)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

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

Tomcat/5.5.9.

--------------------------------------------------------------------------------

Apache Tomcat/5.5.9
**********************************************************************************

La estructura que utilizo en la aplicacion es:

+ /SIAP
+ /WEB-INF
+ /classes
+ /mypack
- *.class
+ /src
+ /mypack
- *.java ****
+ /lib
- *.jar
- web.xml ****
+ /META-INF
- context.xml ****
+ /others
- *.htm
- *.jsp

Mi archivo context.xml es el siguiente:

***********************************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/SIAP" path="/SIAP" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_Cocm_log."

suffix=".txt" timestamp="true"/>
<Resource name="jdbc/siapDB"
auth="Container"
type="javax.sql.DataSource"
maxActive="30"
maxIdle="10"
maxWait="1000"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
username="XXXX"
password="XXXX"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cocm"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"/>
</Context>
*************************************************************************************

mi archivo web.xml es:

*************************************************************************************
<?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>
<display-name>Sistema de Informacion para la Administracion de Procesos</display-name>
<description>Administra los procesos de Centro Operativo de Comunicaciones y

Medios</description>
<distributable/>
<listener>
<listener-class>libreria.ContextListener</listener-class>
</listener>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>Index.jsp</welcome-file>
</welcome-file-list>
</web-app>
***************************************************************************************

// bastante largo, pero la verdad es que pense que entre mas especifico fuera mas facil

comprenderian el problema y mas rapido podria solucionarlo.

De antemano, agradezco a todo aquel que dedique algo de su tiempo para atender mi inquietud.
Mi correo es: [email protected]
pongo la direccion de correo, porque este mensaje esta en varios foros y asi me es mas facil leer

sus comentarios, de nuevo gracias.

Zacjack_
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

RE:Tomcat5.5.9 + MySQL = HTTP 500

Publicado por ZacJack (9 intervenciones) el 04/11/2005 05:12:03
Esta es la etructura de directorios, espero aqui se entienda mejor
+ /SIAP
---+ /WEB-INF
--------+ /classes
------------+ /mypack
------------------ *.class
--------+ /src
------------+ /mypack
------------------- *.java ****
--------+ /lib
------------ *.jar
--------- web.xml ****
----+ /META-INF
--------- context.xml ****
----+ /others
-----------*.gif, *.jpg, *.etc
---- *.htm
---- *.jsp

y la verdad es que el mensaje anterior era originalmente mas largo, pero por el limite de 1000 caracteres, tuve que pasar esto para este otro mensaje

/libreria/ContextListener.java es:

****************************************************************************************
package libreria;

import javax.servlet.*;

public final class ContextListener implements ServletContextListener {

public void contextInitialized (ServletContextEvent servletContextEvent) {
ServletContext servletContext = servletContextEvent.getServletContext ();
try {
LibrosBD librosBD = new LibrosBD ();
servletContext.setAttribute ("BaseDatos", librosBD);
}
catch (Exception e) {
servletContext.log ("No se pudo crear el atributo BaseDatos: " + e.getMessage ());
}
}

public void contextDestroyed (ServletContextEvent servletContextEvent) {
ServletContext servletContext = servletContextEvent.getServletContext ();
LibrosBD librosBD= (LibrosBD) servletContext.getAttribute ("BaseDatos");
librosBD.close ();
servletContext.removeAttribute ("BaseDatos");
}

}
*****************************************************************************************

/libreria/LibrosBD.java es:

*****************************************************************************************
package libreria;

import java.sql.*;
import java.util.*;
import javax.sql.*;
import javax.naming.*;

public class LibrosBD {
Connection connection;
private boolean connectionFree = true;
private ArrayList libros;

public LibrosBD () throws Exception {
try {
InitialContext initialContext = new InitialContext ();
Context envContext = (Context) initialContext.lookup ("java:comp/env");
DataSource dataSource = (DataSource) envContext.lookup ("jdbc/siapDB");
this.connection = dataSource.getConnection ();
}
catch (Exception e) {
throw new Exception ("No se pudo abrir la base de datos SIAP: " + e.getMessage ());
}
}

protected synchronized Connection getConnection () {
while (this.connectionFree == false) {
try {
wait ();
}
catch (InterruptedException e) {
}
}
this.connectionFree = false;
notify ();
return this.connection;
}

protected synchronized void releaseConnection () {
while (this.connectionFree == true) {
try {
wait ();
}
catch (InterruptedException e) {
}
}
this.connectionFree = true;
notify ();
}

public Libro getLibro (String Cod_equipo) {
try {
this.getConnection ();
PreparedStatement preparedStatement = this.connection.prepareStatement ("SELECT *.*

FROM libros WHERE Cod_equipo = ?");
preparedStatement.setString (1, Cod_equipo);
ResultSet resultSet = preparedStatement.executeQuery ();
if (resultSet.next ()) {
Libro libro = new Libro (resultSet.getString (1), resultSet.getString (2));
preparedStatement.close ();
this.releaseConnection ();
return libro;
}
else {
preparedStatement.close ();
this.releaseConnection ();
return null;
}
}
catch (SQLException e) {
this.releaseConnection ();
return null;
}
}

public Collection getLibros () {
libros = new ArrayList ();
try {
this.getConnection ();
PreparedStatement preparedStatement = this.connection.prepareStatement ("SELECT

Cod_equipo, nombre FROM equipo");
ResultSet resultSet = preparedStatement.executeQuery ();
while (resultSet.next ()) {
Libro libro = new Libro (resultSet.getString (1), resultSet.getString (2));
libros.add (libro);
}
preparedStatement.close ();
}
catch (SQLException e) {
return null;
}
this.releaseConnection ();

return libros;
}

public void close () {
try {
this.connection.close ();
}
catch (SQLException e) {
System.out.println (e.getMessage ());
}
}
}
*****************************************************************************************

y el error guardado en logs/localhost.yyyy.mm.dd.txt

******************************************************************************************
3/11/2005 10:38:53 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() para servlet jsp lanzó excepción
java.lang.NullPointerException
at org.apache.jsp.equipo_jsp._jspService(org.apache.jsp.equipo_jsp:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.

java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at

org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
*******************************************************************************************


// bastante largo, pero la verdad es que pense que entre mas especifico fuera mas facil

comprenderian el problema y mas rapido podria solucionarlo.

De antemano, agradezco a todo aquel que dedique algo de su tiempo para atender mi inquietud.
Mi correo es: [email protected]
pongo la direccion de correo, porque este mensaje esta en varios foros y asi me es mas facil leer

sus comentarios, de nuevo gracias.

Zacjack_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tomcat5.5.9 + MySQL = HTTP 500

Publicado por consultoriajava.com (5 intervenciones) el 04/11/2005 10:20:56
Estimado Zac, pastear todo el codigo de la aplicacion no ayuda demasiado, lo primero que deberias hacer es delimitar en que linea de codigo se está produciendo ese NullPointerException.

Esto lo puedes hacer usando trazas o debugeando con algun entorno.

http://www.consultoriajava.com/knowhow/netiquette/dudapococoncreta.html

En cualquier caso el NullPointerException se suele producir por que no has reservado memoria para un objeto al que posteriormente intentas acceder.

http://www.consultoriajava.com/knowhow/basico/NullPointerException.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tomcat5.5.9 + MySQL = HTTP 500

Publicado por zacjack (9 intervenciones) el 04/11/2005 13:15:52
Si tienes razon, no es la mejor opcion llenar un mensaje con codigo esperando sea leido con toda la paciencia del mundo, pero en este caso... la verdad es que me estoy desesperando, pues he estado trabajando varias horas... mejor dias en lo mismo sin conseguir establecer la conexion con la base de datos.

La aplicacion en la que estoy trabajando ya esta bastante atrasada, lo unico que necesito es tener la conexion establecida y continuar condificando "en forma".
solamente trabajo (por ahora), con una base de datos, quero cargar la informacion de una sola tabla, para ello trabajo con tres archivos .java, dos archivos .jsp y los archivos de configuracion de la aplicacion. y si

NullPointerException

cuando se intenta acceder a un metodo o atributo al que no se le asignado memoria o simplemente es nulo, pero en estas pocas lineas de código no logro encontrar ese error (de ahi que posteara todo el codigo), en verdad, agradeceria que me colaboraran con este error, estoy iniciando y es frustrante leer y leer y leer y leer... sin conseguir un pequeño avance en algo tan pequeño.

de nuevo gracias.

Zacjack
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tomcat5.5.9 + MySQL = HTTP 500

Publicado por ana maria (1 intervención) el 05/03/2008 20:35:28
ponte a llorar jajajaja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar