BW REST API для загрузки файла уха - PullRequest
0 голосов
/ 01 апреля 2019

Хотя я пытаюсь развернуть новое приложение в домене с помощью BEST Agent REST API, сначала требуется загрузить файл ear.когда я пытаюсь загрузить сгенерированный файл .ear, но этот вызов POST не выполняется с ошибкой HTTP 415.Этот API REST пытается отправить файл EAR, для которого что-то не так с заголовками.

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

Content-type = application / octet-stream

ошибка в файле журнала bwagent:

2019-04-01 10: 10: 37.732 WARN [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 содержит параметры формыв теле запроса, но тело запроса было использовано сервлетом или сервлет-фильтром, обращающимся к параметрам запроса.Только методы ресурсов, использующие @FormParam, будут работать как положено.Ресурсные методы, использующие тело запроса другими средствами, не будут работать должным образом.

Я попытался с Content-Type = multipart / form-data и прикрепил файл ear, но не удалось с ошибкой HTTP 500 с ошибками вфайл журнала агента

2019-04-09 10: 18: 50.819 WARN [qtp1124804249-81] oejetty.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 голосов
/ 03 апреля 2019

Прошло много времени с тех пор, как я в последний раз использовал REST API напрямую для развертывания приложений (использование инструмента bwadmin cli намного проще и работает на большинстве платформ и инструментах CI / CD), но я ' Я не уверен, что Content-type=application/octet-stream является правильным типом контента.

Сообщение об ошибке, которое вы видите, приходит с сервера Джерси и означает, что вы отправляете данные в конечную точку, которая ожидает данные формы (Content-Type=multipart/form-data). То, что вы могли бы попытаться увидеть правильный вызов:

  • Запустите bwagent с помощью команды apiserver (bwserver apiserver)
  • Откройте браузер и перейдите к http://<hostname>:5555 (если вы не установили для свойства bw.agent.http.host другое число)

Это откроет документацию Swagger для BWAgent и позволит вам оттуда попробовать позвонить. Используя это, он будет отображать как фактическую команду, которая выполняется, так и параметры заголовка HTTP, которые необходимо установить.

...