我使用以下依赖项
使用Spring启动创建了一个服务<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
现在在我的控制器类中,我写了以下内容:
@RestController
@RequestMapping("/abc")
public class WebController {
@RequestMapping(value = "/test/{value}", method = RequestMethod.GET, produces = {"application/json", "application/xml" })
public ResponseEntity<Ack> getTest(@PathVariable("value") String value) {
Ack ack = new Ack();
ack.setResponse(value);
ack.setStatus(HttpStatus.OK.value());
return new ResponseEntity<Ack>(ack, HttpStatus.OK);
}
}
Ack是POJO,它有每个属性的setter和getter。
当我在Windows机器上运行时,我将以json和XML格式输出。但在使用邮递员的Mac中,我使用URL命名服务:http://IP:8443/abc/test/123并提供accept作为application / xml我以XML格式获取输出。当我使用application / json时,我收到的错误如下:
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:260)
at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:203)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:81)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:381)
at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:59)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136)
不确定出了什么问题。请建议做什么。
答案 0 :(得分:0)
经过大量研究后,我发现我正在使用的jackson api版本(如下所述)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.4</version>
</dependency>
虽然在我使用时
,但无法提供JSON输出 <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.0</version>
</dependency>
它就像一个魅力。我将此标记为上面发布的问题的解决方案,但仍然无法找出原因?为什么在Windows中它工作以及为什么它在Mac中失败。灰色区域对我来说.. !!!