带有 Groovy 的 Hipchat 消息 - 找不到 ObjectMapper 实现
Hipchat Message with Groovy - Can't find an ObjectMapper implementation
我在使用 Groovy 脚本时遇到问题,试图 post 使用 Unirest 在 Hipchat 中发送消息。
Caught: java.lang.RuntimeException: Serialization Impossible. Can't find an ObjectMapper implementation.
java.lang.RuntimeException: Serialization Impossible. Can't find an ObjectMapper implementation.
at com.mashape.unirest.request.HttpRequestWithBody.body(HttpRequestWithBody.java:155)
at com.mashape.unirest.request.HttpRequestWithBody$body.call(Unknown Source)
at 011.run(011.groovy:15)
这就是脚本:
@Grab(group='com.mashape.unirest', module='unirest-java', version='1.4.9')
import com.mashape.unirest.http.JsonNode
import com.mashape.unirest.http.HttpResponse
import com.mashape.unirest.http.Unirest
def apiToken = " [Token] "
Unirest.clearDefaultHeaders()
Unirest.post("https://api.hipchat.com/v2/room/ [Number] /message" )
.header("Content-Type", "application/json" )
.queryString('auth_token', apiToken)
.body(["message": "Test", "notify": True])
.asString()
预先感谢您的帮助。
您正在将 Map
传递给 .body(...)
,但文档说它需要 String
、JsonNode
或 Object
,对于 Object
s,您将需要更多配置来指定它们的序列化方式(Map
属于该类别)。
也许你可以让 Groovy 从你的 Map
对象中为你生成一个 JSON 字符串值:
.body(JsonOutput.toJson(["message": "Test", "notify": true]))
(JsonOutput
在包 groovy.json
中)
我在使用 Groovy 脚本时遇到问题,试图 post 使用 Unirest 在 Hipchat 中发送消息。
Caught: java.lang.RuntimeException: Serialization Impossible. Can't find an ObjectMapper implementation.
java.lang.RuntimeException: Serialization Impossible. Can't find an ObjectMapper implementation.
at com.mashape.unirest.request.HttpRequestWithBody.body(HttpRequestWithBody.java:155)
at com.mashape.unirest.request.HttpRequestWithBody$body.call(Unknown Source)
at 011.run(011.groovy:15)
这就是脚本:
@Grab(group='com.mashape.unirest', module='unirest-java', version='1.4.9')
import com.mashape.unirest.http.JsonNode
import com.mashape.unirest.http.HttpResponse
import com.mashape.unirest.http.Unirest
def apiToken = " [Token] "
Unirest.clearDefaultHeaders()
Unirest.post("https://api.hipchat.com/v2/room/ [Number] /message" )
.header("Content-Type", "application/json" )
.queryString('auth_token', apiToken)
.body(["message": "Test", "notify": True])
.asString()
预先感谢您的帮助。
您正在将 Map
传递给 .body(...)
,但文档说它需要 String
、JsonNode
或 Object
,对于 Object
s,您将需要更多配置来指定它们的序列化方式(Map
属于该类别)。
也许你可以让 Groovy 从你的 Map
对象中为你生成一个 JSON 字符串值:
.body(JsonOutput.toJson(["message": "Test", "notify": true]))
(JsonOutput
在包 groovy.json
中)