我有一个非常基本的Spring Boot应用程序,其中包含。-data-jpa,。-data-rest和。-web依赖项。
在我的模型中,有一个实体Game
,它包含一个Integer属性homeGameSwitch
。
当我通过REST调用获取资源时,我得到了这个异常:
.w.s.m.s.DefaultHandlerExceptionResolver:无法写入HTTP 信息: org.springframework.http.converter.HttpMessageNotWritableException: 无法编写JSON:java.lang.Integer无法强制转换为 java.lang.String中;嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:java.lang.Integer 无法强制转换为java.lang.String(通过引用链: org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module $ PersistentEntityResourceSerializer $ 1 [&#34;内容&#34;] - &GT; com.coli.stripebackend.model.Game [&#34; homeGameSwitch&#34;])< / p>
我觉得杰克逊无法处理一个整数,这很奇怪。 我可以做些什么来阻止这个错误吗?
实体:
@Entity
public class Game {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private Integer homeGameSwitch;
public Integer getHomeGameSwitch() {
return homeGameSwitch;
}
DAO:
@Repository("gameDao")
public interface GameDao extends JpaRepository<Game, Integer> {}
服务:
@Service("gameService")
public class GameServiceImpl implements GameService {
@Autowired
private GameDao gameDao;
@Override
public Game retrieveGameById(Integer id) throws Exception {
Optional<Game> optionalGame = gameDao.findById(id);
return optionalGame.get();
}
调用localhost时发生错误:8080 / game / 7
答案 0 :(得分:0)
问题与Spring Boot的版本有关。我使用的是版本2.0.0.M2,其中似乎有一个错误。 使用1.5.4.RELEASE版时,我没有问题。
答案 1 :(得分:0)
这是对未来来这里的读者的警告:有很多触发该异常的方法:Jackson serialization exception when trying to serialize LocalDateTime
中收集了一些类似的异常。似乎我碰到了获得完全相同的异常的另一种方法:拥有一个像这样的类:
class Foo extends HashMap<String, String> {
public long bar;
}
并尝试对其进行序列化。