当前位置: 首页 > 知识库问答 >
问题:

Spring 5之后的webmvc Rest服务指南-没有找到类型返回值的转换器

曹渝
2023-03-14

我正在遵循从Spring.io构建RESTful Web服务的官方指南。

我在Greeting类中有getter方法,尽管我没有setter。这正是指南上的类。

我尝试在pom.xml上添加fasterxml json依赖项,但是错误消息是一样的。

我的所有设置与指南完全相同,只是应用程序是由dispatch-servlet.xml而不是main方法引导的。

    <servlet>
    <servlet-name>greeting</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>greeting</servlet-name>
    <url-pattern>/greeting/*</url-pattern>
  </servlet-mapping>
<context:component-scan base-package="com.test" />
WARNING: Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class com.test.Greeting

我不认为这是getters的问题(我肯定有)。也不是没有fasterxml依赖项的问题。

我错过了什么?

共有1个答案

金慈
2023-03-14

您肯定需要main方法:

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@springbootapplication注释所做的比您想象的要多。最重要的是它调用@enableAutoConfiguration。这用于计算您在项目中执行的其他依赖项。在您的示例中,该注释将配置Jackson将Java对象解析为JSON。

直接来自Javadoc:

    ..
    <packaging>war</packaging> 
    ..

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

从理论上讲,您应该很好,但情况可能并非如此,所以请查看Spring中的示例项目。

这些人也有一些问题,所以看看它是否也影响了你。

 类似资料:
  • 问题内容: 有了这个代码 我得到以下异常 我的猜测是,由于缺少Jackson,该对象无法转换为JSON。我不明白为什么,因为我以为杰克逊内置弹簧靴。 然后我试图将Jackson添加到pom.xml中,但是我仍然遇到相同的错误 我是否需要更改任何Spring Boot属性才能使其正常工作? 谢谢 问题答案: 问题是Foo中的一个嵌套对象没有任何对象

  • 编辑:我想出了如何解决这个问题,并在下面的答案中发布了它。 我正在尝试创建一个API来查询数据库并返回两个值。我知道db查询可以工作,因为我可以看到它将值输出到控制台。但当我执行它时,我得到了这个错误:没有找到类型为:class hello的返回值的转换器。获取患者信息 这是我的控制器代码: 这是我的班级: 我肯定我做了一些根本错误的事情,因为我以前从未创建过api,但我只是没有迅速取得进展。任何

  • 根据这个Spring引导教程,我正在编写一个简单的RESTAPI。在我的本地开发机器(Ubuntu 15.04和Windows 8.1)上,一切都很有魅力。 我有一个旧的服务器,我想在其上部署我的服务。 开始日志正常,但只要我向endpoint发送请求,就会出现以下错误: 然后沿着stacktrace往下看: 整个堆栈跟踪都张贴在这里。 我查看了一些引用此错误的答案,但这些似乎不适用于我的问题,因

  • 我为协变返回类型的继承创建了一个小示例。基本上有三种不同的类别: 主应用程序: BaseManager: 鸟经理: 当我重写方法以返回时,为什么我需要将类型转换为? 我使用过的重写方法在返回类型上会有所不同吗?作为参考。 编辑: 我有不同的子模型,它们都继承自。所有模型都允许存在一次。我尝试将这些模型添加到列表中,而不是对每个模型使用单例。使用,我想得到实际的模型。也许我得考虑太多了。

  • 我试图在控制器中的一个方法中使用这样的HashMap返回json 当我在PostMan中点击这个方法时,我得到了这个错误 这就是我设置应用程序的方式 错误说,它不能将列表转换为httpMessges,所以我需要任何转换器或类似的东西吗?我错过了什么?