根据这个Spring引导教程,我正在编写一个简单的RESTAPI。在我的本地开发机器(Ubuntu 15.04和Windows 8.1)上,一切都很有魅力。
我有一个旧的32位
Ubuntu 12.04 LTS
服务器,我想在其上部署我的REST
服务。
开始日志正常,但只要我向endpoint发送请求,就会出现以下错误:
java.lang.IllegalArgumentException: No converter found for return value of type: class ch.gmazlami.gifty.models.user.User
然后沿着stacktrace往下看:
java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.LinkedHashMap
整个堆栈跟踪都张贴在这里。
我查看了一些引用此错误的答案,但这些似乎不适用于我的问题,因为我使用的是Spring-Boot,没有任何xml
配置。
受影响的控制器是:
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public ResponseEntity<User> getUser(@PathVariable Long id){
try{
return new ResponseEntity<User>(userService.getUserById(id), HttpStatus.OK);
}catch(NoSuchUserException e){
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
任何帮助都将不胜感激。这很奇怪,因为完全相同的东西在其他机器上完美地工作。
当您忘记“构建”调用时会发生这种情况:
return ResponseEntity.status(HttpStatus.BAD_REQUEST);
应该是:
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
你应该对你的pom做一些更改。xml和mvc调度程序servlet。xml文件:将以下依赖项添加到pom中。xml:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.3</version>
</dependency>
并更新您的mvc-dispatcher-servlet.xml:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
这发生在我身上,只在一种资源(一种方法)上,我不明白为什么。类中的所有方法都在同一个包中,具有相同的注释,对响应性的调用相同。好(…) 等。刚刚工作。
但不是这个。
原来我忘记了在我的POJO类中生成getter!
我一加上它们就行了。
希望它最终能节省一些时间。。。
问题内容: 有了这个代码 我得到以下异常 我的猜测是,由于缺少Jackson,该对象无法转换为JSON。我不明白为什么,因为我以为杰克逊内置弹簧靴。 然后我试图将Jackson添加到pom.xml中,但是我仍然遇到相同的错误 我是否需要更改任何Spring Boot属性才能使其正常工作? 谢谢 问题答案: 问题是Foo中的一个嵌套对象没有任何对象
编辑:我想出了如何解决这个问题,并在下面的答案中发布了它。 我正在尝试创建一个API来查询数据库并返回两个值。我知道db查询可以工作,因为我可以看到它将值输出到控制台。但当我执行它时,我得到了这个错误:没有找到类型为:class hello的返回值的转换器。获取患者信息 这是我的控制器代码: 这是我的班级: 我肯定我做了一些根本错误的事情,因为我以前从未创建过api,但我只是没有迅速取得进展。任何
我试图在控制器中的一个方法中使用这样的HashMap返回json 当我在PostMan中点击这个方法时,我得到了这个错误 这就是我设置应用程序的方式 错误说,它不能将列表转换为httpMessges,所以我需要任何转换器或类似的东西吗?我错过了什么?
我有这门课: 这个问题: 但我有这个错误
情况 我正在将kotlin Spring data neo4j应用程序从version迁移到version。 原始应用程序有几个带有自定义查询的存储库接口,这些接口将一些DTO作为参数,并使用各种DTO字段来构造查询。目前所有这些类型的查询都失败了 spring-data-neo4j v6的参考留档仅提供了一些示例,其中传递给接口的自定义查询方法的参数与与该存储库关联的类的类型相同。留档没有明确声