1

我想通过 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 并尝试发布。

结果是:

在此处输入图像描述

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

你能给我任何解决方案吗?

4

1 回答 1

1

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

于 2013-06-09T10:44:53.793 回答