Estoy recibiendo una excepción que no entiendo. Tengo un controlador, me devuelve un objeto de noticias y aparece en la consola, por lo que obtener el objeto de noticias real no es el problema,
@RequestMapping(value ="/viewonestatus/{id}") public ModelAndView viewOneStatus(@PathVariable("id") Long id) { System.out.println("!!!!!! STATUSUPDATECONTROLLER: viewOneStatus : Empezamos con el ID del Anuncio: " + id); StatusUpdate status = statusUpdateService.get(id); ModelAndView modelAndView = new ModelAndView(); System.out.println("!!!!!! STATUSUPDATECONTROLLER: viewOneStatus : Empezamos con el ID del Anuncio: " + status); modelAndView.getModel().put("status", status); modelAndView.setViewName("viewonestatus"); return modelAndView; }.... pero cuando trato de ejecutar el JSP me da el siguiente error, incluso con un JSP casi vacío, como...
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> hello world Exception: Exception: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "viewonestatus" Failed URL: http://localhost:8080/viewonestatus/viewonestatus Exception message: Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "viewonestatus"Muchas gracias por tu ayuda
@RequestMapping(value ="/viewonestatus/{id}") public ModelAndView viewOneStatus(@PathVariable("id") Long id)Aquí está declarando una variable de ruta llamada "id" y declara su tipo como Long. A continuación, está llamando a la URL:
http://localhost:8080/viewonestatus/viewonestatusel segundo "viewonestatus" obviamente no es de tipo Long y es por eso que Spring lanza una excepción porque no puede convertir "viewonestatus" a Long
su solicitud debe verse como
http://localhost:8080/viewonestatus/12321Bueno, esto me estaba volviendo loco durante aproximadamente 1/2 hora. Si está utilizando SpringBoot, esto podría ayudarlo.
Me di cuenta en mi controlador que estaba usando
@Controller
en vez de
@RestController
Eso fue todo. Puaj.