当前位置: 首页 > 知识库问答 >
问题:

无法通过curl请求使用post请求在Flink中提交作业(请求不匹配……)

益源
2023-03-14

我试图向运行在Kubernetes集群上的Flink作业管理器发送post请求。当为一个不需要任何命令行参数的类发送/jar/run的post请求时,它工作得很好。但是,当尝试在同一个jar中提交一个不同的类时(这需要命令行参数),会出现以下错误。-:{“错误”:[“请求与预期格式JARRunRequestBody不匹配。”]}'

但是,在传递命令行参数并直接提交作业时,像下面的works-:

./flink run -m localhost:30287 -c com.class.name ~/path/to/jar/1.0-1.0-SNAPSHOT.jar --bootstrap.servers izac-cp-kafka:9092 --group.id test --topic bank_transaction --schema.registry http://mysr-schema-registry:8081 --CepJson """{\"keyId\": \"customer_id\",\"pattern\": [{\"patternName\": \"p1\",\"simpleCondition\":{\"columnName\": \"amount\",\"operator\": \">\",\"value\": \"50\",\"dataType\": \"Int\"}},{\"patternName\":\"p2\",\"simpleCondition\":{\"columnName\":\"amount\",\"operator\":\">\",\"value\":\"30\",\"dataType\":\"Int\"}}],\"connector\":[{\"name\":\"begin\",\"connectorType\":\"next\",\"start\":\"p1\",\"end\":\"p2\"}]}"""
curl -k -v -X POST -H "Content-Type: application/json" --data '{    "entryClass":"com.class.name",   "programArgsList": [        "--bootstrap.servers izac-cp-kafka:9092",        "--group.id test",        "--topic bank_transaction",        "--schema.registry http://mysr-schema-registry:8081",        "--CepJson """{\"keyId\": \"customer_id\",\"pattern\": [{\"patternName\": \"p1\",\"simpleCondition\":{\"columnName\": \"amount\",\"operator\": \">\",\"value\": \"50\",\"dataType\": \"Int\"}},{\"patternName\":\"p2\",\"simpleCondition\":{\"columnName\":\"amount\",\"operator\":\">\",\"value\":\"30\",\"dataType\":\"Int\"}}],\"connector\":[{\"name\":\"begin\",\"connectorType\":\"next\",\"start\":\"p1\",\"end\":\"p2\"}]}""""]}' http://localhost:30287/jars/2a788e33-c92d-47c4-84af-31e3dff28666_1.0-1.0-SNAPSHOT.jar/run

然而,这给出了前面提到的错误。我只是想将上面的命令行作业提交转换为一个基于rest api的提交到flink集群。

注意-:post请求是针对已经包含所需JAR的flink集群的。我只想提交使用特定类的作业。

共有1个答案

章烨烨
2023-03-14

我不认为curl会像scala那样接受“”“作为字符串插值,这样它就不会发送正确的cepjson参数,所以我将首先更改它。

 类似资料:
  • 我试图向运行在Kubernetes集群上的Flink作业管理器发送post请求。当为不需要任何命令行参数的类发送/jar/run的post请求时,它工作得很好。但是,当尝试在同一个jar中提交需要命令行参数的不同类时,会出现以下错误。-:<代码>{“errors”:[“请求与预期格式JarRunRequestBody不匹配。”]} 但是,在传递命令行参数并直接提交作业时,请执行以下操作-: 要将上

  • 希望在Mulesoft HTTP请求中实现以下功能 卷曲“https://somedomain.com/1/1/1/search“ -X POST -H”授权:承载令牌”

  • 我看到这个错误在chrome控制台" 加载http://localhost:4001/api/v1/sessions/new失败:对预试请求的响应没有通过权限改造检查:请求的资源上没有“访问-控制-允许-起源”标头。因此不允许访问“起源http://localhost:4044”。响应有HTTP状态代码405。 如果我只是尝试和卷曲完全相同的API调用它工作正常: 为什么它与CURL一起工作,而不

  • 我正在使用curl发出一个POST请求,如下所示 但在servlet中,我无法获取任何数据。 有什么建议吗?还有一种在数据内部获取数据的更好方法,如?

  • 有人能帮我吗? 谢谢

  • 我如何发送此信息: 到API: 使用cURL,我目前一直在使用: 其中我得到了结果(NGrok): GET/testDir/curlPost。php HTTP/1.1 接受:text/html、Application/xhtml xml、image/jxr、/ 接受语言:en-GB 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537