【问题标题】:Problems passing Post Paramters using Perl to Restful Java API使用 Perl 将 Post 参数传递到 Restful Java API 时出现问题
【发布时间】:2013-06-27 10:34:04
【问题描述】:

我正在从 Perl 调用一个用 java 编写的 rest 服务。

@POST
@Path("/updategrid")
private void updategrid(@FormParam Grid grid);

Class Column{
private String col;
private String val;
//constructors and setters
}

Class Grid{
private String name;
private List<Column> columns;
//constructors and setters
}

我正在尝试在 Perl 中传递 post call 参数

$httpClient->request(host/updateGrid, {grid=>{name=>'temp', columns=>[{col=>'A',val=>'B'}]}})

我收到错误,因为 Grid 没有带有单个字符串参数的构造函数。但是当我删除列参数时,一切都很好。那么传递给列表属性的正确方法是什么。

【问题讨论】:

    标签: java perl rest


    【解决方案1】:

    我不确定@QueryForm 注释,但它似乎尝试使用您传递的Json 字符串而不是使用此字符串进行序列化来初始化Grid 对象。将注解 @RequestBody 放在 updateGrid 方法上而不是 @QueryForm 注解上,它应该可以工作。

    【讨论】:

    • 试试我的建议。还要确保你的路径中有杰克逊罐子。
    • 嗯。但问题是,如果我这样做 $httpClient->request(host/updateGrid, {grid=>{name=>'temp'}}) 它会起作用。所以我认为 javax.ws.rs.@FormParam 应该没问题。
    • 我猜你是对的。尝试将列类型更改为 Column[] 而不是 List&lt;Column&gt;
    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    相关资源
    最近更新 更多