使用REST服务时出现406 org.springframework.web.HttpMediaTypeNotAcceptableException

时间:2016-08-30 12:41:08

标签: angularjs json rest spring-boot

我得到406响应" HttpMediaTypeNotAcceptableException"从angularJS调用REST服务时。

角度休息呼叫

$http.get('/MongoMicroServices-0.1.0/user/getByMailId/' + $scope.username).then(function(response){
            //alert(response.data);
        },
        function(response){
            console.log("Error!");
        });

休息控制器

@RestController
@RequestMapping("/user")
public class UserController {

@Autowired
private UserService userService;

@RequestMapping(value = "/getByMailId/{emailId}", method = RequestMethod.GET)
public User getUserByMailId(@PathVariable String emailId)
{
    return userService.findUserByEmailId(emailId);
}
}

响应

{"timestamp":1472558929345,"status":406,"error":"Not Acceptable","exception":"org.springframework.web.HttpMediaTypeNotAcceptableException","message":"Could not find acceptable representation","path":"/MongoMicroServices-0.1.0/user/getByMailId/admin@gmail.com"}

我正在使用春季靴子。以下是spring boot的依赖关系。

的pom.xml

    <dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

</dependencies>

1 个答案:

答案 0 :(得分:0)

您正在返回User对象,可能是json格式。

首先,您应该将produces='application/json'添加到@RequestMapping。这样可以防止将来出现许多麻烦。

其次,你应该在类路径中有一个对象序列化程序,例如Jackson(你的User类应该实现Serializable,但这只是为了你的和平在大多数情况下)。