НЕ УДАЛОСЬ!405 Метод HTTP PUT не поддерживается этим URL [PactBroker] - PullRequest
0 голосов
/ 16 октября 2018

При отправке публикации с локального хоста все работает правильно.При использовании с фиксированным IP-адресом возвращается ошибка 405.

<<strong> FAILED!405 Метод HTTP PUT не поддерживается этим URL-адресом >

В одиночку при публикации проверка работает в обоих направлениях.

Запрос генерируется задачей в gradle:

pact {
  publish {
    pactBrokerUrl = 'http://localhost:80'
    pactBrokerUsername = 'admin'
    pactBrokerPassword = 'admin'
    tags = ['DEV']
} }

Добавить настройки в ngnix.conf, но он не будет работать.

Пожалуйста, помогите !!!

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Возможно, ваша проблема не в коде, а в его развертывании.

При развертывании кода в среде разработки обычно веб-сервер / веб-служба прослушивают localhost (или 127.0.0.1).,Часто это настройка по умолчанию для распределенного программного обеспечения, так как она предоставляет сервис только одной и той же машине, сводя к минимуму степень риска (для других, вызывающих вашу службу).

Это означает, что во многих случаях вам необходимоперенастроить ваш веб-сервер или веб-сервис для прослушивания входящих адресов, отличных от 127.0.0.1.Например, в Apache HTTPD вы должны изменить файл /etc/httpd/httpd.conf, чтобы изменить строку

Listen 127.0.0.1:80

на

Listen 80

Другие системы имеют другие значения конфигурации, которые могуттребуется аналогичное обновление, и я буду искать подробную информацию о вашей конкретной среде и проверять параметры конфигурации для вашей среды.

Также возможно, что запрос достигает машины, а служба прослушиваетэто, но программный брандмауэр отбрасывает запрос после того, как он достигает машины, но до того, как он будет передан службе обработки.Опять же, я бы проверил, включен ли программный брандмауэр, и если это так, загляните в административные параметры, чтобы перенастроить его, разрешив вашим запросам обращаться в службу, обрабатывающую их.также обратите внимание на параметры конфигурации ведения журнала, так как это поможет вам лучше понять процесс.

В качестве последнего варианта вы можете захотеть установить (если это система Linux) WireShark на сервер, чтобыпроверьте, что запрос достигает сервера.Иногда из-за проблем конфигурации за пределами службы, таких как программные или аппаратные брандмауэры на промежуточных компьютерах или ошибки в политиках маршрутизации, ваш запрос может быть отправлен в неправильную часть сети, а ваша служба (и сервер, на котором она находится) даже не видитrequest.

Несмотря на то, что определить конкретную проблему в данный момент непросто, эти рекомендации должны продвинуть вас дальше к работающей системе и могут быть достаточно полными для решения многих наиболее распространенных проблем.

Удачи!

0 голосов
/ 17 октября 2018

как в патч-решении использовать curl:

curl -v -XPUT -H 'Content-Type: application/json' -u 'admin:admin' -d@c:/pacts/ms-consumer-ms-provider.json http://<IP>:80/pacts/provider/ms-provider/consumer/ms-consumer/version/1.0.0/

Работает, так я выполняю его в конвейере.

...