Me casca la JSP, porque puede ser?

Acudo a ti ya que las ultimas veces me has ayudado mucho a ver si puedes ayudarme esta vez.
Tengo un problema al cargar una JSP. El action llama a un metodo irBuscar, que abre una jsp de busqueda. Al dar a buscar, sale este casque:::
500 Internal Server Error
500 Internal Server Error
java.lang.IllegalArgumentException: argument type mismatch
At sun. Reflect. NativeMethodAccessorImpl. Invoke0(Native Method)
At sun. Reflect. NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
At sun. Reflect. DelegatingMethodAccessorImpl. Invoke(DelegatingMethodAccessorImpl.java:25)
At java. Lang. Reflect. Method.invoke(Method.java:324)
At org. Apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)
At org. Apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)
At org. Apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)
At org. Apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)
At org. Apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
At org. Apache. Struts. Util. RequestUtils.populate(RequestUtils.java:1252)
At org. Apache. Struts. Action. RequestProcessor. ProcessPopulate(RequestProcessor.java:821)
At org. Apache. Struts. Action. RequestProcessor.process(RequestProcessor.java:254)
At org. Apache. Struts. Action. ActionServlet.process(ActionServlet.java:1482)
At org. Apache. Struts. Action. ActionServlet.doPost(ActionServlet.java:525)
At javax. Servlet.http.HttpServlet.service(HttpServlet.java:760)
At javax. Servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:663)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
At java. Lang. Thread.run(Thread.java:534)
¿Por qué puede ser?

1 Respuesta

Respuesta
1
El problema lo tienes en el action al que llamas cuando le das a buscar. Por lo visto en la clase Form que usa el action, debes tener definido un campo de tipo numérico, o fecha, o algo así, y le estás pasando desde el form html un valor inválido. Para asegurarme de lo que digo necesitaría ver tres cosas:
1) La página JSP de búsqueda
2) El Action al que llamas
3) el Form que es usado por el Action
Revisa estas tres cosas y verifica los tipos de dato.
la jsp
<script>
// limpiar campos
   function limpiaCampos() {
         document.all.DCategoriaFaq.value="";
         document.all.UCreacion.value="";
         document.all.FCreacion.value="";
   }
function validar(){
   var validacion = 0;
   if (validacion==0) enviar('KUROCategoriasFaq.do?accion=buscar');    
}
</script>
<body >
<DIV class="encuadre">
  <jsp:include page="/cabecera.jsp" flush="true" />
<div class="cuadroContenedor">
<div id="tituloOpcion" >
<h1>CONSULTA CATEGORIAS</h1>
</div>
<html:form action="/KUROCategoriasFaq.do">
<div id="titulocajaformulario">Introduce los datos de la pregunta</div>
<div id="cajaformulario">
         <fieldset class="normales">
            <legend class="normales">Datos Obligatorios</legend>
<hr class="hrblanco">
</hr>
<br>
              <label class="obligado">* Codigo de la categoria padre de la FAQ:</label>
<html:text property="DCategoriaFaq"  tabindex="18" styleClass="inputColor colocaNombreAreaAlta" size="77" maxlength="100"/>
              </br>
              <br>
              <label class="obligado">* Identificador del usuario:</label>
<html:text property="UCreacion"  tabindex="18" styleClass="inputColor colocaNombreAreaAlta" size="50" maxlength="100"/>
              </br>
              <br>
              <label class="obligado">* Fecha de creacion del registro de la FAQ:</label>
<html:text property="FCreacion"  styleClass="inputColor colocaNombreAreaAlta"  size="50" maxlength="100"/>
              </br>
         </fieldset>     
      </div>
<div id="cajaformulario02">   
         <fieldset class="normales">
<html:button value="Buscar" property="botonAceptar" styleClass="botonformulario" onclick="javascript:validar();"/>
<html:reset value="Volver" property="Cancelar" styleClass="botonformulario" onclick="javascript:history.back()"/>
<input type="button" value="Limpiar formulario" onClick="javascript:limpiaCampos();">
         </fieldset>
    </div>
<br />
      <br />
   <logic:present name="sinDatos">
<div id="divSinDatos">
<p><label><bean:write name="sinDatos"/></label></p>
</div>
</logic:present>
<table border="1" class="tabla5 tablaConsultas">
<logic:notPresent name="sinDatos">
   <logic:present name="primeraConsulta">
<tr>
<th align="center" colspan="5" class="col1">Nº </th>
      <th align="center" colspan="5" class="col1" id="DCategoriaFaq">Nº </th>
      <th align="center" colspan="5" class="col2" id="DDescripcion">Prueba </th>
      <th align="center" colspan="5" class="col3" id="UCreacion">FCreacion </th>
      <th align="center" colspan="5" class="col4" id="FCreacion">FCreacion </th>
      <th align="center" colspan="5" class="col5" id="UModificacion">UModificacion </th>
      <th align="center" colspan="5" class="col6" id="FModificacion">FModificacion </th>
</tr>
</logic:present>
<logic:present name="paginaKUROCategoriasFaqOT" property="elementos">
<logic:iterate id="elemento" name="paginaKUROCategoriasFaqOT" property="elementos">
<tr>
<td colspan="5" align="left">
       <br />
       <bean:write name="elemento" property="DCategoriaFaq"/>
       </td>
<td colspan="5" align="left">
       <br />
       <bean:write name="elemento" property="DDescripcion"/>
       </td>
<td colspan="5" align="center" >                        
       <br />                
       <bean:write name="elemento" property="UCreacion"/>
       </td>
<td colspan="5" align="center">                       
       <br />                
       <bean:write name="elemento" property="FCreacion" />
       </td>
<td colspan="5" align="right">                       
       <br />                
       <bean:write name="elemento" property="UModificacion" />
       </td>
<td colspan="5" align="right">                       
       <br />                
       <bean:write name="elemento" property="FModificacion" />
       </td>
</tr>
</logic:iterate>
</logic:present>
</logic:notPresent>
</table>
</html:form>
el form
public final class KUROCategoriasFaqForm extends KUROComunForm {
/** Almacena el valor para <I>C_CATEGORIA_FAQ_ID</I> en KURO_CATEGORIAS*/
private long cCategoriaFaqID;
/** Almacena el valor para <I>C_CATEGORIA_FAQ_PADRE</I> en KURO_CATEGORIAS*/
private long cCategoriaFaqPadre;
/** Almacena el valor para <I>D_CATEGORIA_FAQ</I> en KURO_CATEGORIAS*/
private String dCategoriaFaq;
/** Almacena el valor para <I>D_DESCRIPCION</I> en KURO_CATEGORIAS*/
private String dDescripcion;
/** Almacena el valor para <I>B_BORRADO</I> en KURO_CATEGORIAS*/
private String bBorrado;
/** Almacena el valor para <I>U_CREACION</I> en KURO_CATEGORIAS*/
private String uCreacion;
/** Almacena el valor para <I>F_CREACION</I> en KURO_CATEGORIAS*/
private Date fCreacion;
/** Almacena el valor para <I>U_MODIFICACION</I> en KURO_CATEGORIAS*/
private String uModificacion;
/** Almacena el valor para <I>F_MODIFICACION</I> en KURO_CATEGORIAS*/
private Date fModificacion;
el action con sus dos metodos
public ActionForward buscar(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
 {
   String sig = "error";
   String mensajeError = "Se ha producido un error";
   Logger log = null;
   ActionForward actionForward =null;
   try {
     KUROConfigApp.logger.info("");
     KUROConfigApp.logger.info("---------- CONSULTA DE KURO_PRUEBA --------- ");
     ActionErrors errores = new ActionErrors();
     request.setAttribute("primeraConsulta","false");
     int primerRegistro = Pagina.DEFAULT_PRIMER_REGISTRO;
     int registrosPorPagina = Pagina.DEFAULT_REGISTROS_POR_PAGINA;
     String s = null;
     s = request.getParameter(Pagina.PRIMER_REGISTRO_PARAMETER_NAME);
     if (s != null)
      primerRegistro = Integer.parseInt(s);
     s = request.getParameter(Pagina.REGISTROS_PAGINA_PARAMETER_NAME);
     if (s != null)
      registrosPorPagina = Integer.parseInt(s);
     KUROCategoriasFaqForm formulario = (KUROCategoriasFaqForm) form;
     KUROCategoriasFaqOT categoriasFaqOT = new KUROCategoriasFaqOT();
     HttpSession session = request.getSession();
     categoriasFaqOT.setCCategoriaFaqID(formulario.getCCategoriaFaqID());
     categoriasFaqOT.setCCategoriaFaqPadre(formulario.getCCategoriaFaqPadre());
     categoriasFaqOT.setDCategoriaFaq(formulario.getDCategoriaFaq());
     categoriasFaqOT.setDDescripcion(formulario.getDDescripcion());
     categoriasFaqOT.setBBorrado(formulario.getBBorrado());
     categoriasFaqOT.setUCreacion(formulario.getUCreacion());
     categoriasFaqOT.setFCreacion(formulario.getFCreacion());
     categoriasFaqOT.setUModificacion(formulario.getUModificacion());
     categoriasFaqOT.setFModificacion(formulario.getFModificacion());
     //Obtenemos los siguientes datos de la request para pasarlos a la página genérica como String
     JCYLUsuario jcylUsuario = (JCYLUsuario) session.getAttribute(JCYLConfiguracion.NOMBRE_ATRIBUTO_USUARIO);
     KUROCategoriasFaqLN kUROCategoriasFaqLN = new KUROCategoriasFaqLN(jcylUsuario);
     long cCategoriaFaqID = 0;
      long cCategoriaFaqPadre= 0;
      String dCategoriaFaq = null;
      String dDescripcion= null;      
     String bBorrado= null;      
     String uCreacion= null;         
     Date fCreacion= null;   
     String uModificacion= null;   
     Date fModificacion= null;
     //ArrayList elementos = kUROPrueba2LN.consultaKUROPrueba2(cPrueba,dPrueba,aDescripcion,FInicio, primerRegistro, registrosPorPagina);
     ArrayList elementos = kUROCategoriasFaqLN.consultaKUROCategoriasFaq(categoriasFaqOT, primerRegistro, registrosPorPagina);
     if (elementos != null){
       KUROConfigApp.logger.info("Se han recuperado "+elementos.size() +" Areas para la consulta");
        if (elementos.size()==0){
            request.setAttribute("sinDatos","No existen registros con los parametros especificados");
            request.removeAttribute("conDatos");
        }else{
          int nListado = 0;
          //nListado = kUROPrueba2LN.listadoPrueba2(cPrueba,dPrueba,aDescripcion,fInicio);
          request.removeAttribute("sinDatos");
          Pagina pagina = new Pagina(mapping.getPath()+".do", request);
          pagina.setElementos(elementos);
          pagina.setRegistroActual(primerRegistro);
          //pagina.setNRegistros(nListado);
          pagina.setNRegistros(elementos.size());
          pagina.setRegistrosPorPagina(registrosPorPagina);
          request.setAttribute("paginaKUROCategoriasFaqOT", pagina);
          request.getSession().setAttribute("conDatos","Hemos recuperado datos");
          request.removeAttribute("menu");
          request.getSession().removeAttribute("menu");
        }
      }else
       {
          request.setAttribute("errorConsultando","Error consultando en la base de datos");
       }
       KUROConfigApp.logger.info("---------- FIN CONSULTA KUROCategoriasFaq ------- ");
   }catch (Exception ex){
  KUROConfigApp.logger.error(ex.getMessage());
      request.setAttribute("mensaje",mensajeError);
   return mapping.findForward("error");
   }
   return mapping.findForward("irBuscar");
  }// Fin de buscar
¿Se llega a ejecutar el action? ¿Salen tus trazas?
el action ir buscar si, pero el buscar no...
Revisa los nombres de las propiedades, porque me parece que no son del todo iguales, las del Form y las que pones en la jsp de búsqueda como
<html:text>
el html text es para poner una caja de text en la jsp
, los datos que tengo en el form son solo long, string y date..que pueden ser introducidos en un html text no??
No te compliques. Define todos los campos como String, y luego en el Action haces las conversiones que hagan falta. De otra manera no te va a funcionar. Además, revisa los nombres de las propiedades para que se llamen igual, mayúsculas y minúsculas incluidas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas