pact-foundation / pact-jvm

JVM version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.
https://docs.pact.io
Apache License 2.0
1.08k stars 478 forks source link

Failed to load pact file from Pact Broker #813

Open Naralux opened 5 years ago

Naralux commented 5 years ago

I'm trying to verify pact files from a Pact Broker instance using the pact-jvm-provider-maven_2.12 plugin with the following configuration:

<plugin>
                <groupId>au.com.dius</groupId>
                <artifactId>pact-jvm-provider-maven_2.12</artifactId>
                <version>3.5.22</version>
                <configuration>
                    <configuration>
                        <pact.verifier.publishResults>true</pact.verifier.publishResults>
                    </configuration>
                    <serviceProviders>
                        <serviceProvider>
                            <name>account-service</name>
                            <port>8081</port>
                            <pactBrokerUrl>http://localhost:8888/</pactBrokerUrl>
                            <consumers>
                                <consumer>
                                    <name>transaction-service</name>
                                    <stateChangeUrl>http://localhost:8081/pactStateChange</stateChangeUrl>
                                </consumer>
                            </consumers>
                        </serviceProvider>
                    </serviceProviders>
                </configuration>
            </plugin>

Running the pact:verfiy -X goal against a running application instance gives the following exception (skipped some parts of debug log):

[DEBUG]   (s) buildDir = C:\Users\C58982\Documents\Stage Microservices\bank-account-service\target
[DEBUG]   (f) classpathElements = [C:\Users\C58982\Documents\Stage Microservices\bank-account-service\target\test-classes, C:\Users\C58982\Documents\Stage Microservices\bank-account-service\target\classes, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.1.0.RELEASE\spring-boot-starter-data-jpa-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.1.0.RELEASE\spring-boot-starter-aop-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-aop\5.1.2.RELEASE\spring-aop-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\aspectj\aspectjweaver\1.9.2\aspectjweaver-1.9.2.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.1.0.RELEASE\spring-boot-starter-jdbc-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\com\zaxxer\HikariCP\3.2.0\HikariCP-3.2.0.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-jdbc\5.1.2.RELEASE\spring-jdbc-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\javax\transaction\javax.transaction-api\1.3\javax.transaction-api-1.3.jar, C:\Users\C58982\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar, C:\Users\C58982\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar, C:\Users\C58982\.m2\repository\org\hibernate\hibernate-core\5.3.7.Final\hibernate-core-5.3.7.Final.jar, C:\Users\C58982\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar, C:\Users\C58982\.m2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar, C:\Users\C58982\.m2\repository\org\javassist\javassist\3.23.1-GA\javassist-3.23.1-GA.jar, C:\Users\C58982\.m2\repository\net\bytebuddy\byte-buddy\1.9.3\byte-buddy-1.9.3.jar, C:\Users\C58982\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar, C:\Users\C58982\.m2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar, C:\Users\C58982\.m2\repository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar, C:\Users\C58982\.m2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar, C:\Users\C58982\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.4.Final\hibernate-commons-annotations-5.0.4.Final.jar, C:\Users\C58982\.m2\repository\org\springframework\data\spring-data-jpa\2.1.2.RELEASE\spring-data-jpa-2.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\data\spring-data-commons\2.1.2.RELEASE\spring-data-commons-2.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-orm\5.1.2.RELEASE\spring-orm-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-context\5.1.2.RELEASE\spring-context-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-tx\5.1.2.RELEASE\spring-tx-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-beans\5.1.2.RELEASE\spring-beans-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-aspects\5.1.2.RELEASE\spring-aspects-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.1.0.RELEASE\spring-boot-starter-web-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter\2.1.0.RELEASE\spring-boot-starter-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.1.0.RELEASE\spring-boot-starter-logging-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar, C:\Users\C58982\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar, C:\Users\C58982\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.11.1\log4j-to-slf4j-2.11.1.jar, C:\Users\C58982\.m2\repository\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar, C:\Users\C58982\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar, C:\Users\C58982\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar, C:\Users\C58982\.m2\repository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.1.0.RELEASE\spring-boot-starter-json-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.7\jackson-databind-2.9.7.jar, C:\Users\C58982\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar, C:\Users\C58982\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.7\jackson-core-2.9.7.jar, C:\Users\C58982\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.7\jackson-datatype-jdk8-2.9.7.jar, C:\Users\C58982\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.7\jackson-datatype-jsr310-2.9.7.jar, C:\Users\C58982\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.7\jackson-module-parameter-names-2.9.7.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.1.0.RELEASE\spring-boot-starter-tomcat-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.12\tomcat-embed-core-9.0.12.jar, C:\Users\C58982\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.12\tomcat-embed-el-9.0.12.jar, C:\Users\C58982\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.12\tomcat-embed-websocket-9.0.12.jar, C:\Users\C58982\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.13.Final\hibernate-validator-6.0.13.Final.jar, C:\Users\C58982\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-web\5.1.2.RELEASE\spring-web-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-webmvc\5.1.2.RELEASE\spring-webmvc-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-expression\5.1.2.RELEASE\spring-expression-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-devtools\2.1.0.RELEASE\spring-boot-devtools-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot\2.1.0.RELEASE\spring-boot-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.1.0.RELEASE\spring-boot-autoconfigure-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\com\h2database\h2\1.4.197\h2-1.4.197.jar, C:\Users\C58982\.m2\repository\org\projectlombok\lombok\1.18.2\lombok-1.18.2.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.1.0.RELEASE\spring-boot-starter-test-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-test\2.1.0.RELEASE\spring-boot-test-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.1.0.RELEASE\spring-boot-test-autoconfigure-2.1.0.RELEASE.jar, C:\Users\C58982\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar, C:\Users\C58982\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar, C:\Users\C58982\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar, C:\Users\C58982\.m2\repository\junit\junit\4.12\junit-4.12.jar, C:\Users\C58982\.m2\repository\org\assertj\assertj-core\3.11.1\assertj-core-3.11.1.jar, C:\Users\C58982\.m2\repository\org\mockito\mockito-core\2.23.0\mockito-core-2.23.0.jar, C:\Users\C58982\.m2\repository\net\bytebuddy\byte-buddy-agent\1.9.3\byte-buddy-agent-1.9.3.jar, C:\Users\C58982\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar, C:\Users\C58982\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar, C:\Users\C58982\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar, C:\Users\C58982\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar, C:\Users\C58982\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-core\5.1.2.RELEASE\spring-core-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-jcl\5.1.2.RELEASE\spring-jcl-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\spring-test\5.1.2.RELEASE\spring-test-5.1.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\xmlunit\xmlunit-core\2.6.2\xmlunit-core-2.6.2.jar, C:\Users\C58982\.m2\repository\org\springframework\cloud\spring-cloud-starter-contract-verifier\2.0.2.RELEASE\spring-cloud-starter-contract-verifier-2.0.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\cloud\spring-cloud-contract-verifier\2.0.2.RELEASE\spring-cloud-contract-verifier-2.0.2.RELEASE.jar, C:\Users\C58982\.m2\repository\org\springframework\cloud\spring-cloud-contract-spec\2.0.2.RELEASE\spring-cloud-contract-spec-2.0.2.RELEASE.jar, C:\Users\C58982\.m2\repository\dk\brics\automaton\automaton\1.11-8\automaton-1.11-8.jar, C:\Users\C58982\.m2\repository\org\apache\commons\commons-text\1.1\commons-text-1.1.jar, C:\Users\C58982\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar, C:\Users\C58982\.m2\repository\com\github\tomakehurst\wiremock-standalone\2.18.0\wiremock-standalone-2.18.0.jar, C:\Users\C58982\.m2\repository\org\codehaus\groovy\groovy\2.5.3\groovy-2.5.3.jar, C:\Users\C58982\.m2\repository\org\codehaus\groovy\groovy-nio\2.5.3\groovy-nio-2.5.3.jar, C:\Users\C58982\.m2\repository\org\codehaus\groovy\groovy-json\2.5.3\groovy-json-2.5.3.jar, C:\Users\C58982\.m2\repository\org\codehaus\groovy\groovy-xml\2.5.3\groovy-xml-2.5.3.jar, C:\Users\C58982\.m2\repository\com\github\jknack\handlebars\4.0.6\handlebars-4.0.6.jar, C:\Users\C58982\.m2\repository\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar, C:\Users\C58982\.m2\repository\org\antlr\antlr4-runtime\4.5.1-1\antlr4-runtime-4.5.1-1.jar, C:\Users\C58982\.m2\repository\org\mozilla\rhino\1.7R4\rhino-1.7R4.jar, C:\Users\C58982\.m2\repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar, C:\Users\C58982\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar, C:\Users\C58982\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar, C:\Users\C58982\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.9.7\jackson-dataformat-yaml-2.9.7.jar, C:\Users\C58982\.m2\repository\io\rest-assured\rest-assured\3.1.1\rest-assured-3.1.1.jar, C:\Users\C58982\.m2\repository\org\apache\httpcomponents\httpclient\4.5.6\httpclient-4.5.6.jar, C:\Users\C58982\.m2\repository\org\apache\httpcomponents\httpcore\4.4.10\httpcore-4.4.10.jar, C:\Users\C58982\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar, C:\Users\C58982\.m2\repository\org\apache\httpcomponents\httpmime\4.5.6\httpmime-4.5.6.jar, C:\Users\C58982\.m2\repository\org\ccil\cowan\tagsoup\tagsoup\1.2.1\tagsoup-1.2.1.jar, C:\Users\C58982\.m2\repository\io\rest-assured\json-path\3.1.1\json-path-3.1.1.jar, C:\Users\C58982\.m2\repository\io\rest-assured\rest-assured-common\3.1.1\rest-assured-common-3.1.1.jar, C:\Users\C58982\.m2\repository\io\rest-assured\xml-path\3.1.1\xml-path-3.1.1.jar, C:\Users\C58982\.m2\repository\io\rest-assured\spring-mock-mvc\3.1.1\spring-mock-mvc-3.1.1.jar, C:\Users\C58982\.m2\repository\com\toomuchcoding\jsonassert\jsonassert\0.4.13\jsonassert-0.4.13.jar, C:\Users\C58982\.m2\repository\cglib\cglib\3.2.4\cglib-3.2.4.jar, C:\Users\C58982\.m2\repository\org\ow2\asm\asm\6.0_ALPHA\asm-6.0_ALPHA.jar, C:\Users\C58982\.m2\repository\org\apache\ant\ant\1.9.6\ant-1.9.6.jar, C:\Users\C58982\.m2\repository\org\apache\ant\ant-launcher\1.9.6\ant-launcher-1.9.6.jar]
[DEBUG]   (f) configuration = {pact.verifier.publishResults=true}
[DEBUG]   (s) failIfNoPactsFound = true
[DEBUG]   (f) projectVersion = 0.0.1-SNAPSHOT
[DEBUG]   (s) reports = [console]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/C:/Users/C58982/.m2/repository/org/codehaus/groovy/groovy-all/2.4.12/groovy-all-2.4.12-indy.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[DEBUG]   (s) name = account-service
[DEBUG]   (s) port = 8081
[DEBUG]   (s) pactBrokerUrl = http://localhost:8888/
[DEBUG]   (s) name = transaction-service
[DEBUG]   (s) stateChangeUrl = http://localhost:8081/pactStateChange
[DEBUG]   (s) consumers = [au.com.dius.pact.provider.maven.Consumer()]
[DEBUG]   (s) serviceProviders = [au.com.dius.pact.provider.maven.Provider(null, null, http://localhost:8888/, null, [])]
[DEBUG]   (f) settings = org.apache.maven.execution.SettingsAdapter@3a45afd4
[DEBUG] -- end configuration --
[DEBUG] Fetching: /
[DEBUG] Fetching: http://localhost:8888/pacts/provider/account-service/latest

Verifying a pact between transaction-service and account-service
[ERROR] Failed to load pact file
java.lang.NullPointerException: Cannot get property 'metadata' on null object
    at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:60)
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)
    at au.com.dius.pact.model.PactReader.loadPact(PactReader.groovy:30)
    at au.com.dius.pact.model.PactReader.loadPact(PactReader.groovy)
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)
    at au.com.dius.pact.provider.ProviderVerifier.loadPactFileForConsumer(ProviderVerifier.groovy:118)
    at au.com.dius.pact.provider.ProviderVerifier.runVerificationForConsumer(ProviderVerifier.groovy:79)
    at au.com.dius.pact.provider.ProviderVerifier.runVerificationForConsumer(ProviderVerifier.groovy)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1080)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1087)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    at groovy.lang.Closure.call(Closure.java:414)
    at groovy.lang.Closure.call(Closure.java:430)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
    at org.codehaus.groovy.runtime.dgm$163.doMethodInvoke(Unknown Source)
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)
    at au.com.dius.pact.provider.ProviderVerifier.verifyProvider(ProviderVerifier.groovy:61)
    at au.com.dius.pact.provider.maven.PactProviderMojo.execute(PactProviderMojo.kt:119)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.525 s
[INFO] Finished at: 2018-11-21T12:53:37+01:00
[INFO] Final Memory: 47M/167M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal au.com.dius:pact-jvm-provider-maven_2.12:3.5.22:verify (default-cli) on project account-service: Execution default-cli of goal au.com.dius:pact-jvm-provider-maven_2.12:3.5.22:verify failed: You must specify the pact file to execute for consumer 'transaction-service' (use <pactFile> or <pactUrl>) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal au.com.dius:pact-jvm-provider-maven_2.12:3.5.22:verify (default-cli) on project account-service: Execution default-cli of goal au.com.dius:pact-jvm-provider-maven_2.12:3.5.22:verify failed: You must specify the pact file to execute for consumer 'transaction-service' (use <pactFile> or <pactUrl>)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal au.com.dius:pact-jvm-provider-maven_2.12:3.5.22:verify failed: You must specify the pact file to execute for consumer 'transaction-service' (use <pactFile> or <pactUrl>)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 21 more
Caused by: java.lang.RuntimeException: You must specify the pact file to execute for consumer 'transaction-service' (use <pactFile> or <pactUrl>)
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)
    at au.com.dius.pact.provider.ProviderVerifier.loadPactFileForConsumer(ProviderVerifier.groovy:125)
    at au.com.dius.pact.provider.ProviderVerifier.runVerificationForConsumer(ProviderVerifier.groovy:79)
    at au.com.dius.pact.provider.ProviderVerifier.runVerificationForConsumer(ProviderVerifier.groovy)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1080)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1087)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    at groovy.lang.Closure.call(Closure.java:414)
    at groovy.lang.Closure.call(Closure.java:430)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
    at org.codehaus.groovy.runtime.dgm$163.doMethodInvoke(Unknown Source)
    at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232)
    at au.com.dius.pact.provider.ProviderVerifier.verifyProvider(ProviderVerifier.groovy:61)
    at au.com.dius.pact.provider.maven.PactProviderMojo.execute(PactProviderMojo.kt:119)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    ... 22 more

This configuration works just fine even though IntelliJ says 'pactBrokerUrl' child tag should be defined on the top-level <configuration> tag:

                <configuration>
                    <configuration>
                        <pact.verifier.publishResults>true</pact.verifier.publishResults>
                    </configuration>
                    <serviceProviders>
                        <serviceProvider>
                            <name>account-service</name>
                            <port>8081</port>
                            <pactBrokerUrl>http://localhost:8888/</pactBrokerUrl>
                            <stateChangeUrl>http://localhost:8081/pactStateChange</stateChangeUrl>
                        </serviceProvider>
                    </serviceProviders>
                </configuration>

But I'd like to specify stateChangeUrls per consumer.

Thoughts?

uglyog commented 5 years ago

Do you want to specify different URLs for each consumer?

Naralux commented 5 years ago

Do you want to specify different URLs for each consumer?

Yes, a seperate url per consumer. Sorry for the late reply, I missed the notification.

qmg-ujoshi commented 2 years ago

Verifying a pact between coreDomainApi and legacyApi [2021-11-24 08:46:26.229] boot - 12928 ERROR [main] --- ProviderVerifier: Failed to load pact file groovy.json.JsonException: Unable to process file: target/pacts-dependents/some.json at groovy.json.internal.BaseJsonParser.parse(BaseJsonParser.java:153) at groovy.json.JsonSlurper.parseFile(JsonSlurper.java:365) at groovy.json.JsonSlurper.parse(JsonSlurper.java:348) at au.com.dius.pact.model.PactReader.loadFile(PactReader.groovy:185) at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232) at au.com.dius.pact.model.PactReader.loadPact(PactReader.groovy:28) at au.com.dius.pact.model.PactReader.loadPact(PactReader.groovy) at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:232) at au.com.dius.pact.provider.ProviderVerifier.loadPactFileForConsumer(ProviderVerifier.groovy:118) at au.com.dius.pact.provider.ProviderVerifier.runVerificationForConsumer(ProviderVerifier.groovy:79) at au.com.dius.pact.provider.ProviderVerifier.runVerificationForConsumer(ProviderVerifier.groovy) at au.com.dius.pact.provider.ProviderVerifier$runVerificationForConsumer$0.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141) at com.qmetric.legacy_api.acceptance.support.Contract$_verifyConsumerPact_closure1.doCall(Contract.groovy:22) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:430) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066) at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at com.qmetric.legacy_api.acceptance.support.Contract.verifyConsumerPact(Contract.groovy:21) at com.qmetric.legacy_api.acceptance.support.Contract$verifyConsumerPact.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) at com.qmetric.legacy_api.acceptance.LegacyApiAsProviderForCoreDomainApiServiceContractTest.shouldHonourPacts(LegacyApiAsProviderForCoreDomainApiServiceContractTest.groovy:71) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:233) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:87) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:176) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:242) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:137) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) Caused by: java.io.FileNotFoundException: target/pacts-dependents/coreDomainApi-legacyApi.json (No such file or directory) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.(FileInputStream.java:138) at groovy.util.CharsetToolkit.(CharsetToolkit.java:71) at org.codehaus.groovy.runtime.ResourceGroovyMethods.newReader(ResourceGroovyMethods.java:1577) at groovy.json.internal.BaseJsonParser.parse(BaseJsonParser.java:147) ... 76 more Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 13.086

I am getting above error when i am using following

`

com.github.warmuuh pactbroker-maven-plugin 0.0.5 https://brocker-URL some-api target/pacts-dependents/ download-pacts generate-resources download-pacts au.com.dius pact-jvm-provider_2.12 3.5.21 test org.codehaus.groovy groovy-all

`

please help me out..

uglyog commented 2 years ago

@qmg-ujoshi com.github.warmuuh pactbroker-maven-plugin 0.0.5 is not a Pact-JVM plugin. Can you raise an issue against the repository for that plugin.

qmg-ujoshi commented 2 years ago

will do, thanks