amazon web services - InvalidParameterException while confirming SNS notification using Java spring cloud aws -
i have sns http end point written using spring-aws-cloud. followed below tutorial. while request confirmation sns topic following error application console. seems status.confirmsubscription() failing. error getting :
zonaws.services.sns.model.invalidparameterexception: invalid parameter: topicarn (service: amazonsns; status code: 400; error code: invalidparameter; request id: d47581bd-789f-58f0-b976-ced91fec6929) @ com.amazonaws.http.amazonhttpclient.handleerrorresponse(amazonhttpclient.java:1383) ~[aws-java-sdk-core-1.10.61.jar:na] @ com.amazonaws.http.amazonhttpclient.executeonerequest(amazonhttpclient.java:902) ~[aws-java-sdk-core-1.10.61.jar:na] @ com.amazonaws.http.amazonhttpclient.executehelper(amazonhttpclient.java:607) ~[aws-java-sdk-core-1.10.61.jar:na] @ com.amazonaws.http.amazonhttpclient.doexecute(amazonhttpclient.java:376) ~[aws-java-sdk-core-1.10.61.jar:na] @ com.amazonaws.http.amazonhttpclient.executewithtimer(amazonhttpclient.java:338) ~[aws-java-sdk-core-1.10.61.jar:na] @ com.amazonaws.http.amazonhttpclient.execute(amazonhttpclient.java:287) ~[aws-java-sdk-core-1.10.61.jar:na] @ com.amazonaws.services.sns.amazonsnsclient.invoke(amazonsnsclient.java:2459) ~[aws-java-sdk-sns-1.10.7.jar:na] @ com.amazonaws.services.sns.amazonsnsclient.confirmsubscription(amazonsnsclient.java:284) ~[aws-java-sdk-sns-1.10.7.jar:na] @ com.amazonaws.services.sns.amazonsnsclient.confirmsubscription(amazonsnsclient.java:1761) ~[aws-java-sdk-sns-1.10.7.jar:na] @ org.springframework.cloud.aws.messaging.endpoint.notificationstatushandlermethodargumentresolver$amazonsnsnotificationstatus.confirmsubscription(notificationstatushandlermethodargumentresolver.java:62) ~[spring-cloud-aws-messaging-1.0.4.release.jar:1.0.4.release] @ com.fastretailing.catalogplatformscmproducer.controller.snscontroller.handlesubscriptionmessage(snscontroller.java:73) ~[classes/:na] @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) ~[na:1.8.0_45] @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) ~[na:1.8.0_45] @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) ~[na:1.8.0_45] @ java.lang.reflect.method.invoke(method.java:497) ~[na:1.8.0_45] @ org.springframework.web.method.support.invocablehandlermethod.doinvoke(invocablehandlermethod.java:222) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.method.support.invocablehandlermethod.invokeforrequest(invocablehandlermethod.java:137) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.mvc.method.annotation.servletinvocablehandlermethod.invokeandhandle(servletinvocablehandlermethod.java:110) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.invokehandlermethod(requestmappinghandleradapter.java:814) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.handleinternal(requestmappinghandleradapter.java:737) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.mvc.method.abstracthandlermethodadapter.handle(abstracthandlermethodadapter.java:85) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:959) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:893) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:969) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:871) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ javax.servlet.http.httpservlet.service(httpservlet.java:648) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:845) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] @ javax.servlet.http.httpservlet.service(httpservlet.java:729) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:291) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:52) ~[tomcat-embed-websocket-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.springframework.web.filter.requestcontextfilter.dofilterinternal(requestcontextfilter.java:99) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.springframework.web.filter.httpputformcontentfilter.dofilterinternal(httpputformcontentfilter.java:87) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.springframework.web.filter.hiddenhttpmethodfilter.dofilterinternal(hiddenhttpmethodfilter.java:77) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:121) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:212) ~[tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:106) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:141) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:79) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:88) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:521) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1096) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:674) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.dorun(nioendpoint.java:1500) [tomcat-embed-core-8.0.30.jar:8.0.30] @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:1456) [tomcat-embed-core-8.0.30.jar:8.0.30] @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) [na:1.8.0_45] @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) [na:1.8.0_45] @ org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) [tomcat-embed-core-8.0.30.jar:8.0.30] @ java.lang.thread.run(thread.java:745) [na:1.8.0_45] my pom.xml below.
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>com.fastretailing.fr-cpf-scm-producer</groupid> <artifactid>fr-cpf-scm-producer</artifactid> <version>1.0-snapshot</version> <packaging>jar</packaging> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>1.3.2.release</version> </parent> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!-- spring cloud sns http endpoint--> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-aws-messaging</artifactid> <version>1.0.4.release</version> </dependency> <!-- spring aws autoconfiguration--> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-aws-autoconfigure</artifactid> <version>1.0.4.release</version> </dependency> <!-- apache commons--> <dependency> <groupid>org.apache.commons</groupid> <artifactid>commons-io</artifactid> <version>1.3.2</version> </dependency> <!-- amazon s3 client--> <dependency> <groupid>com.amazonaws</groupid> <artifactid>aws-java-sdk-s3</artifactid> <version> 1.10.61</version> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-batch</artifactid> </dependency> <!-- mongo client --> <dependency> <groupid>org.springframework.data</groupid> <artifactid>spring-data-mongodb</artifactid> <version>1.8.4.release</version> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-jdbc</artifactid> </dependency> <dependency> <groupid>org.springframework.batch</groupid> <artifactid>spring-batch-test</artifactid> <version>3.0.6.release</version> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.38</version> </dependency> <dependency> <groupid>org.apache.kafka</groupid> <artifactid>kafka_2.10</artifactid> <version>0.9.0.1</version> <exclusions> <exclusion> <groupid>org.slf4j</groupid> <artifactid>slf4j-log4j12</artifactid> </exclusion> </exclusions> </dependency> </dependencies> <properties> <java.version>1.8</java.version> <spring-cloud-version>1.0.0.release</spring-cloud-version> </properties> <build> <resources> <resource> <directory>config</directory> </resource> </resources> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> </plugin> </plugins> </build> </project>
like bill says, need configure region. here's sample code:
return amazonsnsclientbuilder.standard() .withregion(regions.us_west_2) .build(); for more information, see
http://docs.aws.amazon.com/java-sdk/latest/developer-guide/creating-clients.html
Comments
Post a Comment