BW REST API,用于上传耳朵文件

时间:2019-04-01 13:31:59

标签: rest tibco

当我尝试使用BW Agent REST API将新应用程序部署到域中时,它要求先上传耳文件。当我尝试上载生成的.ear文件时,但是此POST调用失败,并出现HTTP 415错误。该REST API试图发布EAR文件,而该文件的头文件有问题。

http://localhost:8079/bw/v1/domains/MYDOMAIN/archives?replace=true

Content-type =应用程序/八位字节流

bwagent日志文件中的错误是

2019-04-01 10:10:3​​7.732警告[qtp2022768790-59] ogjersey.servlet.WebComponent-对URI http://localhost:8079/bw/v1/domains/Test/archives?file=file%3AC%3A%5CUsers%5Ceilmmpw%5CDocuments%5CProcess.Stub.application_1.0.0.ear的Servlet请求在请求正文中包含表单参数,但请求正文已被servlet或访问请求参数的servlet过滤器消耗的资源。只有使用@FormParam的资源方法才能按预期工作。通过其他方式消耗请求主体的资源方法将无法正常工作。

我尝试使用Content-Type = multipart / form-data并附加了ear文件,但是由于HTTP 500错误和代理日志文件中的错误而失败了

2019-04-09 10:18:50.819警告[qtp1124804249-81] o.e.jetty.servlet.ServletHandler- javax.servlet.ServletException:java.lang.NullPointerException         在org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:485)〜[jersey-container-servlet-core-2.21.1.jar:na]

1 个答案:

答案 0 :(得分:0)

自从我上次直接使用REST API来部署应用程序已经有一段时间了(使用bwadmin cli工具是一种更简单的方法,并且可以在大多数平台和CI / CD工具上使用),但是我不是确保Content-type=application/octet-stream是正确的内容类型。

您看到的错误消息来自Jersey服务器,表示您正在将数据发送到需要表单数据(Content-Type=multipart/form-data)的端点。您可以尝试查看正确的调用是:

  • 使用apiserver命令(bwserver apiserver)启动bwagent
  • 打开浏览器并转到http://<hostname>:5555(除非将bw.agent.http.host属性设置为其他数字)

这将打开BWAgent的Swagger文档,并允许您从那里尝试呼叫。使用它,它将显示两个实际执行的命令,包括需要设置的HTTP标头参数。