无法构造org.apache.drill.exec.server.rest.QueryWrapper的实例

时间:2019-03-12 10:27:19

标签: apache-drill

我正在以嵌入式模式开箱即用地运行Apache Drill。

当我向localhost:8047/query.json发送POST请求时,它产生400错误:

Cannot construct instance of `org.apache.drill.exec.server.rest.QueryWrapper`, problem: null
 at [Source: (org.glassfish.jersey.message.internal.EntityInputStream); line: 4, column: 1]

请求:

{
    "QueryType": "SQL",
    "Query": "SELECT count(*) as `cnt` FROM  dfs.`/data/demo/Parquet/*.parquet`"
}

Content-Type: application/json

在分布式模式下运行时也会发生。 通过Web界面运行查询似乎还可以...

根据google,我是唯一出现此错误的人。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

请求中有一个愚蠢的错误。 请求中的字段必须使用 camelCase ,而不是QueryType,而是 queryType 。先前的请求中由于序列化程序设置错误而使用大写字母“ Q”。

一个小时我没有注意到这个细节。

这有效:

{
    "queryType": "SQL",
    "query": "SELECT count(*) as `cnt` FROM  dfs.`/data/demo/Parquet/*.parquet`"
}

如果API返回正常错误(例如“ queryType is missing”)而不是神秘的Cannot construct instance of org.apache.drill.exec.server.rest.QueryWrapper,那就太好了。

希望这可以节省一个小时的生命。