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

[SOLUCIONADO] Error 500 al ejecutar un servlet

Estas en el tema de Error 500 al ejecutar un servlet en el foro de Java en Foros del Web. Hola, Estoy intentando hacer integracion de Struts2-Hibernate-DisplayTags y he ido solucionando los errores que me han aparecido, pero de este no logro salir. type Informe ...
  #1 (permalink)  
Antiguo 21/05/2013, 14:41
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Error 500 al ejecutar un servlet

Hola,

Estoy intentando hacer integracion de Struts2-Hibernate-DisplayTags y he ido solucionando los errores que me han aparecido, pero de este no logro salir.

type Informe de Excepción

mensaje javax.servlet.ServletException: La ejecución del Servlet lanzó una excepción

descripción El servidor encontró un error interno que hizo que no pudiera rellenar este requerimiento.

excepción

org.apache.jasper.JasperException: javax.servlet.ServletException: La ejecución del Servlet lanzó una excepción
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)

causa raíz

java.lang.ExceptionInInitializerError
net.viralpatel.struts.displaytag.HibernateUtil.<cl init>(HibernateUtil.java:22)
net.viralpatel.struts.displaytag.UserAction.execut e(UserAction.java:25)
org.apache.struts.chain.commands.servlet.ExecuteAc tion.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAc tion.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase .execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(Ch ainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.exe cute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(Ch ainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor .process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(Act ionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(Actio nServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet .java:621)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)
org.apache.jasper.runtime.PageContextImpl.doForwar d(PageContextImpl.java:746)
org.apache.jasper.runtime.PageContextImpl.forward( PageContextImpl.java:716)
org.apache.jsp.index_jsp._jspService(index_jsp.jav a:65)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)


org.hibernate.service.classloading.spi.ClassLoadin gException: Unable to load class [com.mysql.jdbc.Driver]
org.hibernate.service.classloading.internal.ClassL oaderServiceImpl.classForName(ClassLoaderServiceIm pl.java:146)
org.hibernate.service.jdbc.connections.internal.Dr iverManagerConnectionProviderImpl.configure(Driver ManagerConnectionProviderImpl.java:104)
org.hibernate.service.internal.StandardServiceRegi stryImpl.configureService(StandardServiceRegistryI mpl.java:75)
org.hibernate.service.internal.AbstractServiceRegi stryImpl.initializeService(AbstractServiceRegistry Impl.java:159)
org.hibernate.service.internal.AbstractServiceRegi stryImpl.getService(AbstractServiceRegistryImpl.ja va:131)
org.hibernate.engine.jdbc.internal.JdbcServicesImp l.buildJdbcConnectionAccess(JdbcServicesImpl.java: 223)
org.hibernate.engine.jdbc.internal.JdbcServicesImp l.configure(JdbcServicesImpl.java:89)
org.hibernate.service.internal.StandardServiceRegi stryImpl.configureService(StandardServiceRegistryI mpl.java:75)
org.hibernate.service.internal.AbstractServiceRegi stryImpl.initializeService(AbstractServiceRegistry Impl.java:159)
org.hibernate.service.internal.AbstractServiceRegi stryImpl.getService(AbstractServiceRegistryImpl.ja va:131)
org.hibernate.cfg.SettingsFactory.buildSettings(Se ttingsFactory.java:77)
org.hibernate.cfg.Configuration.buildSettingsInter nal(Configuration.java:2276)
org.hibernate.cfg.Configuration.buildSettings(Conf iguration.java:2272)
org.hibernate.cfg.Configuration.buildSessionFactor y(Configuration.java:1741)
net.viralpatel.struts.displaytag.HibernateUtil.<cl init>(HibernateUtil.java:20)
net.viralpatel.struts.displaytag.UserAction.execut e(UserAction.java:25)
org.apache.struts.chain.commands.servlet.ExecuteAc tion.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAc tion.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase .execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(Ch ainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.exe cute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(Ch ainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor .process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(Act ionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(Actio nServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet .java:621)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)
org.apache.jasper.runtime.PageContextImpl.doForwar d(PageContextImpl.java:746)
org.apache.jasper.runtime.PageContextImpl.forward( PageContextImpl.java:716)
org.apache.jsp.index_jsp._jspService(index_jsp.jav a:65)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet .java:728)

causa raíz

Por lo que se ve, según entiendo, me pide el driver jdbc y lo tiene puesto como siempre, en los demás proyectos funciona.

La configuración del hibernate.cfg.xml es la siguiente:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>

		<!-- Database connection settings -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bbw</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>

		<!-- JDBC connection pool (use the built-in) -->
	    <property name="connection.pool_size">1</property>  

		<!-- SQL dialect -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

		<!-- Enable Hibernate's automatic session context management -->
		<property name="hibernate.current_session_context_class">thread</property>

		
		
		<mapping resource="ForbesData.hbm.xml"/>
	</session-factory>
</hibernate-configuration>
La Action es esta:

Código:
package net.viralpatel.struts.displaytag;

import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class UserAction extends Action {
	private final static String SUCCESS = "success";

	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 
			HttpServletResponse response) throws Exception {
		
		//Parte de la Query
		Transaction Tx=null;
		Session session = HibernateUtil.getSessionFactory().openSession();
		System.out.println("userAction");	
		ArrayList<ForbesData> lista = null;
		try {
			
			Tx = session.beginTransaction();
			
			String query = "SELECT * FROM forbes";
			
			lista=(ArrayList<ForbesData>) session.createQuery(query).list();
			System.out.println(lista);
			
			
			//session.close();
			Tx.commit();
			
		} catch (HibernateException e) {
			e.printStackTrace();
		}
		UserForm userForm = (UserForm) form;
		userForm.setForbesList(lista);
		return mapping.findForward(SUCCESS);
		}
}
Saludos.
  #2 (permalink)  
Antiguo 23/05/2013, 04:05
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Error 500 al ejecutar un servlet

Empieza por comprobar lo más básico, que el conector de mysql esté en el classpath.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 23/05/2013, 04:09
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Error 500 al ejecutar un servlet

Se paciente hombre, ayer escribiste este mismo POST y como no te han contestado en unas horas has creado otro igual. Esto no es necesario.

Se paciente, si la gente puede/quiere contestarte lo hará.

Saludos
  #4 (permalink)  
Antiguo 23/05/2013, 04:37
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Error 500 al ejecutar un servlet

Hola ElAthlit!

No es eso, ja ja, es que ví como se había quedado el mensaje en borrador y lo envíe, pero me dió error y lo volví a anviar sin comprobarlo antes.

Un saludo
  #5 (permalink)  
Antiguo 23/05/2013, 04:39
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Error 500 al ejecutar un servlet

Cita:
Iniciado por Xerelo Ver Mensaje
Empieza por comprobar lo más básico, que el conector de mysql esté en el classpath.
Hola,

Pues lo tengo como se puede ver en la imagen, creo que es correcto, pero a estas alturas dudo de todo.

Saludos.
  #6 (permalink)  
Antiguo 23/05/2013, 04:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Error 500 al ejecutar un servlet

jeje, ok!!

Encima del proyecto, ves a "Build Path" ---> Configure Build Path
Pestaña "Libraries" y añade el .jar de mysql.

Prueba de nuevo a ver!

Saludos
  #7 (permalink)  
Antiguo 23/05/2013, 05:16
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Error 500 al ejecutar un servlet

Es importante dar todos los datos, estás utilizando librerías de tomcat y el jboss-transaction-api ¿Estás utilizando tomcat?¿Para qué utilizas el jboss-transaction-api?

Prueba hacer un clean del proyecto y del servidor, también puedes poner el conector en las librerías del servidor, te debería funcionar pero no sabrías por qué falla ahora.

Si la estructura es igual que en otros proyectos que sí funcionan, busca qué diferencias hay. Y si no prueba a crear un nuevo proyecto y copia el código, a ver si es algún problema de caché de eclipse.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 24/05/2013, 01:06
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Error 500 al ejecutar un servlet

Cita:
Iniciado por ElAthlit Ver Mensaje
jeje, ok!!

Encima del proyecto, ves a "Build Path" ---> Configure Build Path
Pestaña "Libraries" y añade el .jar de mysql.

Prueba de nuevo a ver!

Saludos
Hola,

Nada no hay manera.

Saludos
  #9 (permalink)  
Antiguo 24/05/2013, 01:18
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Error 500 al ejecutar un servlet

Cita:
Iniciado por Xerelo Ver Mensaje
Es importante dar todos los datos, estás utilizando librerías de tomcat y el jboss-transaction-api ¿Estás utilizando tomcat?¿Para qué utilizas el jboss-transaction-api?

Prueba hacer un clean del proyecto y del servidor, también puedes poner el conector en las librerías del servidor, te debería funcionar pero no sabrías por qué falla ahora.

Si la estructura es igual que en otros proyectos que sí funcionan, busca qué diferencias hay. Y si no prueba a crear un nuevo proyecto y copia el código, a ver si es algún problema de caché de eclipse.
Hola,

Se trata de que quiero incorporar a mi proyecto que se muestre el resultado de una consulta a hibernate gestionada por el struts2 pero con las vistas y paginación de display tags.

Consultas con hibernate-Struts2 tengo hecho varias y me funcionan.
He usado el display-tag, sin hibernate-Struts2 y me funcionan.

Lo anterior mirando ejemplos por la web, claro está, no soy un fenomeno.

Muy probable que al intentar juntarlo todo y como no domino algo me deje.

El jboss-transaction-api no lo uso, pero en el ejemplo veo que es para exportar el listado a CSV, XML, pero puedo estar equivocado.

El tomcat desde que lo instale no lo he tocado, es decir, lo uso desde l entorno de eclipse EE.

Ahora estoy con la parte de la interfice, es decir, la vista de MVC. Esta tarde me lo volvere a repasar.

Un saludo a los dos
  #10 (permalink)  
Antiguo 24/05/2013, 01:52
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Error 500 al ejecutar un servlet

Cita:
Consultas con hibernate-Struts2 tengo hecho varias y me funcionan.
He usado el display-tag, sin hibernate-Struts2 y me funcionan.
Display tags funciona en la capa vista, así que no debería tener nada que ver con que no sea capaz de cargar la clase de mysql. Podrías eliminarlo y usar una JSP normal y seguiría fallando. Es una prueba que deberías hacer.

Cita:
El jboss-transaction-api no lo uso, pero en el ejemplo veo que es para exportar el listado a CSV, XML, pero puedo estar equivocado.
ç
No tiene nada que ver con CSV, son clases para control de transacciones (acceso a base de datos)

http://docs.jboss.org/jbosstm/docs/4...mmersGuide.pdf

No parece que lo estés usando, así que yo lo quitaría, tienes problemas con acceso de base de datos y un jar relacionado que no sabes que hace, igual es parte del problema.

No se me ocurre nada más, haz lo que te he dicho en el anterior mensaje, el montar las cosas de nuevo poco a poco es el último recurso, te permite ir acotando el problema, y a veces desaparecen los problemas por cachés rebeldes.

Edit: Ese error ¿te da al arrancar el tomcat o cuando llamas a ese action? ¿en ese proyecto hay otros action que acceden a la BBDD sin problemas?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #11 (permalink)  
Antiguo 24/05/2013, 03:31
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Error 500 al ejecutar un servlet

Buenas,

este error

Unable to load class [com.mysql.jdbc.Driver]

me aparecio a mi el otro dia al importar un proyecto que estaba en otro ordenador, pero en vez de con Hibernate con MySQL normal, y era, como te ha dicho Xerelo, porque no tenia el Connector de MySQL en el classpath del proyecto.
  #12 (permalink)  
Antiguo 27/05/2013, 08:42
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Error 500 al ejecutar un servlet

buenas,

No veo por nignuna parte el Class.forName, puede ser eso?
  #13 (permalink)  
Antiguo 29/05/2013, 00:24
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Error 500 al ejecutar un servlet

Cita:
Iniciado por rgf1987 Ver Mensaje
Buenas,

este error

Unable to load class [com.mysql.jdbc.Driver]

me aparecio a mi el otro dia al importar un proyecto que estaba en otro ordenador, pero en vez de con Hibernate con MySQL normal, y era, como te ha dicho Xerelo, porque no tenia el Connector de MySQL en el classpath del proyecto.
Hola,

Hoy retomo esa parte dónde la dejé, porque lo nuevo que he ido provando,
de otros apartados me ha funcionado ya está integrado. Revisaré paso a paso
lo queme indicas.

Saludos a todos.
  #14 (permalink)  
Antiguo 08/06/2013, 11:56
Avatar de fpalomar  
Fecha de Ingreso: noviembre-2003
Mensajes: 123
Antigüedad: 20 años, 5 meses
Puntos: 3
Respuesta: Error 500 al ejecutar un servlet

Hola,

Voy ha abrir otro hilo el error es el mismo, pero con un ejemplo más claro todavia. Se llama Paginación con DisplayTag & Hibernate error 500.

Saludos.

Etiquetas: servlet
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 20:54.