rest - 释放资源的POST方法-不支持的媒体类型

标签 rest grails post jax-rs

我想通过POST将一些数据发送到我的grails应用程序。

我有一个非常简单的域名:

class Step {

    String name;
    Long taskId = -1;

    static constraints = {
    }
}

我为其实现了服务:
@Path('/api/step')
class StepResource {


  @POST
  @Consumes(['application/json'])
  String create(Step dto) {
      // dto.save()
  }
}

我向Google Chrome浏览器添加了插件以对其进行测试-POSTMAN,然后尝试进行POST。

结果是:

grails控制台显示:
| Error 2013-06-08 23:30:25,574 [http-bio-8080-exec-3] ERROR container.ContainerRequest  - A message body reader for Java class java.lang.Object, and Java type class java.lang.Object, and MIME media type application/json was not found.
The registered message body readers compatible with the MIME media type are:
application/json ->
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/* ->
  com.sun.jersey.core.impl.provider.entity.FormProvider
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.ReaderProvider
  com.sun.jersey.core.impl.provider.entity.DocumentProvider
  com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.EntityHolderReader
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General

你能给我解决办法吗?

最佳答案

我不确定您应该打印它。
只需声明字符串
还将方法类型更改为String
也请查阅文档。这是最简单的方法
https://github.com/krasserm/grails-jaxrs/wiki/Getting-Started

关于rest - 释放资源的POST方法-不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004321/

相关文章:

c - 通过 HTTP 请求上传文件到 Google Drive (C)

c# - 读取 HttpwebResponse json 响应,C#

grails - 如何只读取文件夹中的图像?

javascript - 包括页面特定 Assets

java - Grails 部署 - 最快的部署方式?

c# - 从 Android 调用到 C# 的服务不起作用

javascript - Python获取post数据调用远程python脚本显示在页面上

java - 面向公众的安全 API

linux - docker 容器中的简单 REST Web 服务器

javascript - 如何发布 JSON 对象数组,其中每个对象 "containing"是上传的图像?