Problema JSP
Hola buenas tardes, me ha surgido un problema y agradecería mucho una ayuda.
Estoy desarrollando una aplicación web con jsp, los jsp acceden a un servicio web en java que comunica con una base de datos en MySQL. El problema le tengo al llamar a un método del servicio web que devuelve objetos Vector siendo Descripcion una clase con una serie de atributos a los que quiero acceder desde la jsp.
El código de la jsp es el siguiente:
Basicamente la duda que tengo debería estar en las siguientes lineas:
call.setReturnType (XMLType.SOAP_VECTOR);
Vector ret = (Vector) call.invoke (new Object [] {sql});
No se si es correcta la invocación para un Vector de objetos de una clase propia, no me da ningun error simplemente me muestra la jsp en blanco. El acceso del servicio web a la base de datos es correcto, el problema debería estar en este código.
Muchisimas gracias,
Un saludo.
Por lo que veo, el código parece correcto, pero por si acaso deberías mostrar la posible excepción que te lance.
Prueba a cambiar esto:
Muchas gracias!!
Había probado a imprimirla peror staba poniendolo mal. Ahora si que me muestra el siguiente error:
; nested exception is:
org.xml.sax.SAXParseException: Premature end of file.
Aún no se a que se puede deber, ¿alguna idea? Seguire investigando xD. Muchisimas gracias por la respuesta!
Es posible que el problema esté en el lado del Web Service. Lo más seguro es que no esté devolviendo nada. ¿Has probado a pasarle el debugger?
El error está en esta linea:
Vector ret = (Vector) call.invoke (new Object [] {sql});
supongo que el problema está al devolver el objeto de mi clase propia Descripcion, el método del servicio web al que estoy llamando es el siguiente:
public Vector obtenerObjetivosVector(String sql) throws Exception
{
this.Conectar();
Statement stmt;
ResultSet res = null;
String [] columnas;
Vector resultados = new Vector();
try
{
stmt = conn.createStatement();
res = stmt.executeQuery(sql);
while(res.next())
{
Descripcion desc = new Descripcion();
String [] columnas= desc.getColumnas();
String dato0 = res.getString(columnas[0]);
desc.setId(dato0);
String dato1 = res.getString(columnas[1]);
desc.setCurso(dato1);
String dato2 = res.getString(columnas[2]);
desc.setCreditos(dato2);
String dato3 = res.getString(columnas[3]);
desc.setSemestre(dato3);
String dato4 = res.getString(columnas[4]);
desc.setHorasSemana(dato4);
String dato5 = res.getString(columnas[5]);
desc.setHorario(dato5);
String dato6 = res.getString(columnas[6]);
desc.setGrupo(dato6);
String dato7 = res.getString(columnas[7]);
desc.setAulaT(dato7);
String dato8 = res.getString(columnas[8]);
desc.setAulaP(dato8);
String dato9 = res.getString(columnas[9]);
desc.setProfesores(dato9);
resultados.add(desc);
}
res.close();
stmt.close();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
}
this.Desconectar();
return resultados;
}
¿Estoy comentiendo algun error al hacer el call.invoke para este tipo de datos?¿Cómo se puede hacer para una clase propia?
Gracias nuevamente
Enviar un comentario nuevo