Java Thymeleaf、SpringMVC、web应用程序和rest模块。无法处理地图<;燃料>;在localhost:8081/transprs端点中
Hello my应用程序分为两个部分,以json格式的web应用服务rest进行数据交换 我在尝试使用localhost:8081/transports端点时遇到问题。这应该给我一个带有数据的传输模板。 相反,我得到了一个错误:Java Thymeleaf、SpringMVC、web应用程序和rest模块。无法处理地图<;燃料>;在localhost:8081/transprs端点中,java,json,spring,rest,model-view-controller,Java,Json,Spring,Rest,Model View Controller,Hello my应用程序分为两个部分,以json格式的web应用服务rest进行数据交换 我在尝试使用localhost:8081/transports端点时遇到问题。这应该给我一个带有数据的传输模板。 相反,我得到了一个错误: class java.util.LinkedHashMap cannot be cast to class com.epam.brest.courses.model.Fuel (java.util.LinkedHashMap is in module java.bas
class java.util.LinkedHashMap cannot be cast to class com.epam.brest.courses.model.Fuel (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; com.epam.brest.courses.model.Fuel is in unnamed module of loader org.eclipse.jetty.webapp.WebAppClassLoader @6ddbbfbb)
at com.epam.brest.courses.web_app.TransportController.getFuelsMap (TransportController.java:198)
我仔细研究了这个问题,发现jackson不知道如何在这一部分序列化或反序列化Map:
我使用这张地图通过id获取燃料,在thymeleaf模板中:
有和的链接
你能帮我写代码吗,用地图解决这个问题
p、 美国endpoing localhost:8081/fuels运行良好,因为我在那里不使用任何地图 我认为问题在于你的加油服务
@Override
public List<Fuel> findAll() {
LOGGER.debug("findAll()");
ResponseEntity responseEntity = restTemplate.getForEntity(url, List.class);
return (List<Fuel>) responseEntity.getBody();
}
@覆盖
公共列表findAll(){
debug(“findAll()”);
ResponseEntity resteEntity=restTemplate.getForEntity(url,List.class);
return(List)responseEntity.getBody();
}
不要使用getForEntity(url,List.class),该列表不是类型安全的。
请尝试:
template.exchange(url, GET, new HttpEntity<>(), newParameterizedTypeReference<List<Fuel>>() { });
template.exchange(url,GET,newhttpentity(),newParameterizedTypeReference(){});
这将返回一个typesafe ResponseEntity,它应该能够正常工作。HttpHeaders=new HttpHeaders();setAccept(Arrays.asList(MediaType.APPLICATION_JSON));HttpEntity=新的HttpEntity(空,标题);ParameteredTypeReference responseType=新的ParameteredTypeReference(){};ResponseEntity ResponseEntity=restemplate.exchange(url,HttpMethod.GET,entity,responseType);return(List)responseEntity.getBody();谢谢你的帮助!