我试图使用spring-boot 2.1.9和spring Rest在浏览器上以JSON格式获取java POJO的内容。非常基本的例子!但我得到了这个帖子标题上显示的异常。当我用@XmlRootelement注释POJO类时,我会在浏览器上获得XML内容。但是,当我试图在浏览器上获取POJO列表时,我得到了与JSON相同的错误。为什么内容协商部分地适用于XML而根本不适用于JSON?谢谢你的每一个回答。
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Oct 03 15:17:06 CEST 2019
There was an unexpected error (type=Internal Server Error, status=500).
No converter found for return value of type: class com.mayo.vina.restapi4.domain.Limit
org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class com.mayo.vina.restapi4.domain.Limit
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:234)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:181)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:123)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:893)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:798)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
我已经尝试了StackOverflow中提供的所有答案。使用jackson-databind扩展POM文件,使用@responsebody、@getmapping而不是@requestmapping,使用produces=“application/json”...对我来说什么都不起作用。
package com.mayo.vina.restapi4;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Restapi4Application {
public static void main(String[] args) {
SpringApplication.run(Restapi4Application.class, args);
}
}
-------------------------------------------------------------------------
package com.mayo.vina.restapi4.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mayo.vina.restapi4.domain.Limit;
@RestController
public class LimitController
{
@RequestMapping("/limit")
public Limit limit()
{
return new Limit(1, 10000);
}
}
---------------------------------------------------------------------------
package com.mayo.vina.restapi4.domain;
//@XmlRootElement
public class Limit
{
private int minimum;
private int maximum;
public Limit()
{
}
public Limit(int minimum, int maximum)
{
this.minimum = minimum;
this.maximum = maximum;
}
public int getMinimum()
{
return minimum;
}
public void setMinimum(int minimum)
{
this.minimum = minimum;
}
public int getMaximum()
{
return maximum;
}
public void setMaximum(int maximum)
{
this.maximum = maximum;
}
}
--------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.mayo.vina</groupId>
<artifactId>restapi4</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>restapi4</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
以下内容解决了我的问题:
所以是的,只是重申一下,进入我的maven repo并删除fasterxml文件夹并重新运行maven是解决问题的方法。
根据这个Spring引导教程,我正在编写一个简单的RESTAPI。在我的本地开发机器(Ubuntu 15.04和Windows 8.1)上,一切都很有魅力。 我有一个旧的服务器,我想在其上部署我的服务。 开始日志正常,但只要我向endpoint发送请求,就会出现以下错误: 然后沿着stacktrace往下看: 整个堆栈跟踪都张贴在这里。 我查看了一些引用此错误的答案,但这些似乎不适用于我的问题,因
问题内容: 有了这个代码 我得到以下异常 我的猜测是,由于缺少Jackson,该对象无法转换为JSON。我不明白为什么,因为我以为杰克逊内置弹簧靴。 然后我试图将Jackson添加到pom.xml中,但是我仍然遇到相同的错误 我是否需要更改任何Spring Boot属性才能使其正常工作? 谢谢 问题答案: 问题是Foo中的一个嵌套对象没有任何对象
编辑:我想出了如何解决这个问题,并在下面的答案中发布了它。 我正在尝试创建一个API来查询数据库并返回两个值。我知道db查询可以工作,因为我可以看到它将值输出到控制台。但当我执行它时,我得到了这个错误:没有找到类型为:class hello的返回值的转换器。获取患者信息 这是我的控制器代码: 这是我的班级: 我肯定我做了一些根本错误的事情,因为我以前从未创建过api,但我只是没有迅速取得进展。任何
问题内容: 我在Spring-boot应用程序中编写了一个简单的REST控制器,但是我不确定如何实现内容协商以使其基于请求标头中的Content- Type参数返回JSON或XML。有人可以告诉我,我在做什么错? 控制器方式: 调用此方法时,我总是会得到JSON(即使我将be 指定为或)。 当我实现两个具有不同映射和不同内容类型的方法时,我可以从xml中获取XML,但是如果我在一个方法中指定两个m
我正在重写旧的rest api,需要保持与它的兼容性。旧api使用servlet并适用于xml和json。逻辑如下: 它检查“Content Type”标题,如果支持(“text/xml”、“application/xml”、“application/json”),则按原样使用 如何使用Spring MVC(使用Spring Boot)获得相同的结果?我尝试在config类中重写configure
我正在遵循从Spring.io构建RESTful Web服务的官方指南。 我在Greeting类中有getter方法,尽管我没有setter。这正是指南上的类。 我尝试在pom.xml上添加fasterxml json依赖项,但是错误消息是一样的。 我的所有设置与指南完全相同,只是应用程序是由dispatch-servlet.xml而不是main方法引导的。 我不认为这是getters的问题(我肯