Grails RestBuilder在签名中找不到带有对象的endPoint
Posted
技术标签:
【中文标题】Grails RestBuilder在签名中找不到带有对象的endPoint【英文标题】:Grails RestBuilder dont findendPoint with Object in signature 【发布时间】:2022-01-09 05:17:36 【问题描述】:我有一个带有 RestBuilder 的代码,需要连接到另一个应用程序,目标端点在签名中有一个带有属性的对象。问题是请求返回 404。我如何解决这个问题?我尝试使用 x-www-form-urlencoded(不起作用)
请求方法:
RestResponse restResponse;
String parameters = '"qtdThreads":3,"channel":"http://localhost:8081/application2"'
try
restResponse = new RestBuilder().post("http://localhost:8080/application/endPoint",
accept("application/json")
contentType "application/json; utf-8"
body(parameters.getBytes("UTF-8"))
connectTimeout: 1000
)
catch (Exception e)
e.printStackTrace();
finally
return restResponse;
目标端点:
Object endPoint(ObjectCommand command)
render(status: HttpStatus.OK)
签名使用的对象
import grails.validation.Validateable
@Validateable
class ObjectCommand
URL channel
Integer qtdThreads
static constraints =
qtdThreads(validator: Integer val ->
if (!val || val <= 0)
return "message1"
)
channel(validator: URL val ->
if (!val)
return "message2"
)
【问题讨论】:
Java 7 - 1.7.0_241 Grails 2.3.11 【参考方案1】:您是否检查过目标应用程序是否正在运行并公开该端点?
【讨论】:
是的。目标应用程序正在运行,endPoint 是公共的。 它在 8080 端口上?curl -v http://localhost:8080/application/endPoint
的输出是什么?
是的 8080。卷曲有效。以上是关于Grails RestBuilder在签名中找不到带有对象的endPoint的主要内容,如果未能解决你的问题,请参考以下文章