HttpMediaTypeNotAcceptException:找不到可接受的表示形式 Spring boot



我使用以下依赖项使用 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,它为每个属性都有二传手和获取器。

当我在Windows机器中运行它时,我以json和XML格式输出。但是在 Mac 中使用邮递员时,我使用 URL:http://IP:8443/abc/test/123 并接受作为应用程序/xml,我正在获得 XML 格式的输出。当我使用应用程序/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)

不知道出了什么问题。请建议该怎么做。

经过大量研究,我发现我正在使用的杰克逊 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 中失败。 对我来说是灰色区域..!!!

相关内容

  • 没有找到相关文章

最新更新