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

Excepción al ejecutar un Servlet

Estas en el tema de Excepción al ejecutar un Servlet en el foro de Java en Foros del Web. Hola, tengo un problemilla al ejecutar un servlet. Me da la siguiente excepción: Estado HTTP 500 - type Informe de Excepci�n mensaje descripci�n El servidor ...
  #1 (permalink)  
Antiguo 01/06/2009, 10:29
 
Fecha de Ingreso: julio-2008
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Excepción al ejecutar un Servlet

Hola,

tengo un problemilla al ejecutar un servlet. Me da la siguiente excepción:

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

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

causa ra�z

java.lang.NoSuchMethodError: Datos.<init>(ILjava/lang/String;Ljava/lang/String;IIDIILjava/lang/String;)V
LecturaBD.doGet(LecturaBD.java:185)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

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


¿A qué se puede deber el error? ¿Cómo podría solucionarlo?

Muchas gracias y un saludo,


Paloma
  #2 (permalink)  
Antiguo 02/06/2009, 04:05
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Excepción al ejecutar un Servlet

Wenas

El error e esta diciendo que no existe dentro de la clase Datos ningun constructor que tenga esa forma (reciba como parametros 3 Strings y devuelva un vector)

Saludos.
  #3 (permalink)  
Antiguo 02/06/2009, 09:40
 
Fecha de Ingreso: julio-2008
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Excepción al ejecutar un Servlet

Hola,

ya he conseguido solucionar el problema anterior, pero ahora tengo otro. Al ejecutar el servlet me da la siguiente excepción:

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

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

causa ra�z

java.lang.NoClassDefFoundError: org/apache/xerces/jaxp/DocumentBuilderFactoryImpl
LecturaBD.generaDocumentoXML(LecturaBD.java:236)
LecturaBD.doGet(LecturaBD.java:172)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

causa ra�z

java.lang.ClassNotFoundException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadC lass(WebappClassLoader.java:1233)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
LecturaBD.generaDocumentoXML(LecturaBD.java:236)
LecturaBD.doGet(LecturaBD.java:172)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

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


No encuentra la clase DocumentBuiderFactoryImpl, pero yo lo he comprobado y está dónde debería estar. ¿Cómo podría solucionarlo?

Muchas gracias por todo y disculpad las molestias.

Un saludo,


Paloma

Última edición por palomarp; 02/06/2009 a las 10:26
  #4 (permalink)  
Antiguo 03/06/2009, 00:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Excepción al ejecutar un Servlet

Ummm, si da tambien un NoClassDefFoundError a veces significa que no es que no tengas la clase, es que la tienes dos veces y se hace un lío.

Comprueba que no tienes dos veces el Xerces en el classpath (incluyendo las librerias del Tomcat, las que estan en ext del JDK...).

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 03/06/2009, 10:12
 
Fecha de Ingreso: julio-2008
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Excepción al ejecutar un Servlet

Hola de nuevo,

he seguido tu sugerencia y ése no es el problema. Me explico un poco mejor: tengo un servlet que se conecta a una base de datos para obtener una serie de datos que tiene que devolver en un xml. Pero me da el error anterior y no funciona, ya que no encuentra la clase DocumentBuilderFactoryImpl. Como prueba he añadido una clase main que devuelve un xml con unos datos inventados y que, llamando exactamente a los mismos métodos, funiciona perfectamente.

Éste es el método main:

public static void main (String []args) {

LecturaBD lectura = new LecturaBD();
Datos dato = new Datos(1, "p8:56:kj:2m", "255.623.489.251", 1, 4, -45, 100, 150, "20090505165415");
lectura.generaDocumentoXML();
lectura.generarDocumentoXMLDato(dato);
String textoXML = lectura.obtenerTextoXML();
lectura.guardarDocumentoXML(textoXML);
System.out.println(textoXML);

}


Y éste es el método generaDocumentoXML(), que es dónde se produce el fallo:

public void generaDocumentoXML() {

try {


DocumentBuilderFactory dbFactory = DocumentBuilderFactoryImpl.newInstance();
DocumentBuilder docBuilder = dbFactory.newDocumentBuilder();
documentoXML = docBuilder.newDocument();

} catch(Exception e) {

System.out.println("Error: " + e);

}

dato = documentoXML.createElement(TAG_DATOS);
documentoXML.appendChild(dato);
}


¿Cómo es posible que, llamando a un mismo método desde el main y desde el doGet del servlet, uno funcione y el otro no?

Muchas gracias y un saludo,


Paloma
  #6 (permalink)  
Antiguo 03/06/2009, 14:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Excepción al ejecutar un Servlet

Por que el classpath en ambos casos es diferente.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #7 (permalink)  
Antiguo 04/06/2009, 08:59
 
Fecha de Ingreso: julio-2008
Mensajes: 47
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Excepción al ejecutar un Servlet

Hola,

muchas gracias por vuestra ayuda. Efectivamente, el error estaba en el classpath. La cosa estaba en que en ejecución la aplicación no encuentraba la libreria de xerces en el classpath, seguramente porque cuando se generaba el war ésta no se incluía en el WEB-INF/lib. Ya lo he incluido y funciona perfectamente (al menos en lo que se refiere a este error concreto).

Un saludo,

Paloma
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:05.