Ошибка при загрузке Pact-файла в Pact Broker

Ошибка "Не удалось прочитать пакты: NullPointerException" при загрузке файла пакта в посредник пактов. Ниже приведены мои данные стека и POM-файл. Пожалуйста помоги. Ниже мой след стека

  [INFO] loading pacts from target/pacts
[INFO] found pact file: PRODUCT-CART.json
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.476 s
[INFO] Finished at: 2017-10-03T15:09:20+08:00
[INFO] Final Memory: 11M/243M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.warmuuh:pactbroker-maven-plugin:0.0.9:upload-pacts (default-cli) on project Auth_Api_Consumer: Failed to read pacts: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.warmuuh:pactbroker-maven-plugin:0.0.9:upload-pacts (default-cli) on project Auth_Api_Consumer: Failed to read pacts
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at 

Ниже мой POM.xml

                <plugin>
                    <groupId>com.github.warmuuh</groupId>
                    <artifactId>pactbroker-maven-plugin</artifactId>
                    <version>0.0.9</version>
                    <executions>
                    <!--CONSUMER Upload Pact File Starts -->    
                        <execution>
                          <id>upload-pacts</id>
                          <phase>test</phase>
                          <goals><goal>upload-pacts</goal></goals>
                          <configuration>
                           <brokerUrl>http://localhost:8080/</brokerUrl>
                           <!-- <brokerUrl>git@scm.hue.workslan:tools/hue-contract-testing.git</brokerUrl> -->
                            <pacts>${project.build.directory}/pacts</pacts>
                          </configuration>
                        </execution>
                    <!--CONSUMER Upload Pact File Ends -->
                        </executions>
                </plugin>

2 ответа

Решение

Смотрите эту документацию по публикации договоров на услуги с похожими названиями:

409 при публикации пакта

Когда договор публикуется нормально (через PUT для /pacts/provider/PROVIDER/consumer/CONSUMER/version/CONSUMER_APP_VERSION) consumer, provider а также consumer version ресурсы создаются автоматически.

Чтобы предотвратить многократное создание участника договора (потребителя или поставщика) с немного отличающимися вариантами имени (например, FooBar / foo-bar / foo bar / Foo Bar Service), если новое имя участника совещания считается достаточно похожим на существующее имя, 409 будут возвращены. В теле ответа будут содержаться инструкции, указывающие на то, что имя участника должно быть исправлено, если оно должно было существовать, или что участник должен быть создан вручную, если предполагалось, что оно будет новым.

К сожалению, некоторые клиенты Pact Broker не показывают полный текст ошибки, когда это происходит. Полный текст выглядит следующим образом: This is the first time a pact has been published for "%{new_name}". The name "%{new_name}" is very similar to the following existing consumers/providers: %{existing_names} If you meant to specify one of the above names, please correct the pact configuration, and re-publish the pact. If the pact is intended to be for a new consumer or provider, please manually create "%{new_name}" using the following command, and then re-publish the pact: $ curl -v -XPOST -H "Content-Type: application/json" -d '{"name": "%{new_name}"}' http://broker/pacticipants If the pact broker requires authentication, include '-u <username>:<password>' in the command.

https://github.com/pact-foundation/pact_broker/wiki/Troubleshooting

Эта проблема возникает, если происходит одно из следующих действий: 1) Конфликт имен в именах потребителей / поставщиков в загружаемых вами файлах json. Решение: убедитесь, что имена уникальны, правила сопоставления не только связаны с соответствием подстроки, но и перехватывают "похожее имя". Пожалуйста, проверьте код соответствия брокера для получения более подробной информации. Для этого еще нет документации. Пример: Cart_service и order_service НЕ допускаются, Car-order, обработка заказов НЕ допускаются, так как они имеют общие слова.

2) Выполнение mvn upload-pacts вернет NullPointerException, если возникнет какая-либо проблема. Чтобы увидеть реальную ошибку, убедитесь, что вы запустили mvn test или mvn install. Он покажет вам точный код состояния ответа сервера.

Другие вопросы по тегам