Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS SQS发送消息java.lang.NoSuchFieldError:CLIENT_ENDPOINT_Java_Amazon Web Services_Gradle_Sdk_Amazon Sqs - Fatal编程技术网

AWS SQS发送消息java.lang.NoSuchFieldError:CLIENT_ENDPOINT

AWS SQS发送消息java.lang.NoSuchFieldError:CLIENT_ENDPOINT,java,amazon-web-services,gradle,sdk,amazon-sqs,Java,Amazon Web Services,Gradle,Sdk,Amazon Sqs,我对gradle相对来说是新手。我正在向AWS SQS死信队列发送消息。我一直得到上面的错误。同一类首先尝试根据筛选器将消息传递到另一个队列,如果不成功,则将消息发送到dlq。我已经测试了快乐之路,它是有效的。生成了错误字符串,但将消息发送到dlq不起作用。我已经读到,这是最常见的与sdk的冲突,但我还没有能够解决它。这是我的build.gradle文件: java.lang.NoSuchFieldError: CLIENT_ENDPOINT at com.amazonaws.servi

我对gradle相对来说是新手。我正在向AWS SQS死信队列发送消息。我一直得到上面的错误。同一类首先尝试根据筛选器将消息传递到另一个队列,如果不成功,则将消息发送到dlq。我已经测试了快乐之路,它是有效的。生成了错误字符串,但将消息发送到dlq不起作用。我已经读到,这是最常见的与sdk的冲突,但我还没有能够解决它。这是我的build.gradle文件:

java.lang.NoSuchFieldError: CLIENT_ENDPOINT
    at com.amazonaws.services.sqs.AmazonSQSClient.executeSendMessage(AmazonSQSClient.java:1813)
    at com.amazonaws.services.sqs.AmazonSQSClient.sendMessage(AmazonSQSClient.java:1795)
    at com.tvg.atp.orch.utils.SoapUtil.sendErrorString(SoapUtil.java:700)
    at com.tvg.atp.orch.handler.OrchFunction.apply(OrchFunction.java:73)
    at com.tvg.atp.orch.controller.OrchController.processEvent(OrchController.java:55)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:109)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:832)

任何帮助都会很好。

我建议不要使用旧的v1API,而是使用AWS SDK for Java V2。Amazon建议使用v2:

AWS SDK for Java 2.x是对1.x版代码库的主要重写。它构建在Java8+之上,并添加了几个经常请求的特性。其中包括对非阻塞I/O的支持,以及在运行时插入不同HTTP实现的能力。

AWSSDKforJavaV2在Spring框架中运行良好。有一个教程展示了SQS服务和Spring框架的使用。但是,它使用的是POM文件而不是Gradle。然而,它可能会帮助你


V1没有类似的端到端教程。

对于任何有相同问题的人,我运行了命令gradle dependencies,发现有两个sdk引用与其他不同。使它们都相同就解决了问题。

对不起,您遇到的错误的详细信息在哪里?感谢Sapoologies我添加了StackTraceTachanks的推荐。我来换。对于任何有相同问题的人,我运行命令gradle dependencies,发现有两个sdk引用与其他引用不同。让他们都一样解决了这个问题。
buildscript {
    ext {
        SPRING_BOOT = '2.2.12.RELEASE'
        SPRING_CLOUD_AWS = '2.2.4.RELEASE'
        SPRING_CLOUD = 'Hoxton.SR8'
        AWS_SDK = "1.11.611"
        SPRING_BOOT_GRADLE_PLUGIN='2.4.0'
    }
    repositories {
        maven {
            url = uri('https://repo.maven.apache.org/maven2/')
        }
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:${SPRING_BOOT}"
        classpath "gradle.plugin.com.github.spotbugs:spotbugs-gradle-plugin:2.0.0"
        classpath "org.owasp:dependency-check-gradle:6.1.0"
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.27.0'
    }
}

plugins {
    id 'net.ltgt.apt' version '0.21'
    id 'net.ltgt.apt-idea' version '0.21'
    id "com.gorylenko.gradle-git-properties" version "2.0.0"
}

configurations {
    antJUnit
}
dependencies {
    antJUnit 'org.apache.ant:ant-junit:1.10.8'
}


apply plugin: 'io.spring.dependency-management'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'groovy'

group = "com.group.${rootProject.name}"
archivesBaseName = "${rootProject.name}"

sourceCompatibility = 1.8
//mainClassName = 'com.group.notifications.handler.ScheduledEventHandlerImplementation'
dependencyManagement {
    dependencies {
        dependency "org.springframework.boot:spring-boot-starter:${SPRING_BOOT}"
        dependency "org.springframework.boot:spring-boot-starter-web:${SPRING_BOOT}"
        //dependency "org.springframework.boot:spring-boot-starter-activemq:${SPRING_BOOT}"
        
        dependency 'xalan:xalan:2.7.1'
        dependency 'commons-lang:commons-lang:2.3'
        dependency 'net.logstash.logback:logstash-logback-encoder:6.1'
        dependency 'org.apache.commons:commons-lang3:3.11'
        dependency 'javax.xml.bind:jaxb-api:2.3.1'
        dependency 'xerces:xercesImpl:2.8.1'
        dependency 'org.mvel:mvel2:2.4.11.Final'
    }
    imports {
        mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${SPRING_CLOUD}"
        mavenBom "org.springframework.cloud:spring-cloud-aws-dependencies:${SPRING_CLOUD_AWS}"
    }
    testCompile {
        dependencies {
            //dependency "org.spockframework:spock-core:1.3-groovy-2.5"
        }
    }
}


allprojects {
    apply plugin: 'java'
    apply plugin: 'jacoco'
    repositories {
        maven {
            url = uri('https://repo.maven.apache.org/maven2/')
        }
    }
}

//apply from: 'gradle/code-quality.gradle'
apply from: 'gradle/dependency-check.gradle'
//apply from: 'gradle/utils.gradle'
apply from: 'gradle/dependency-updates.gradle'

apply plugin: 'application'
apply plugin: 'org.springframework.boot'

dependencies {
    compile "org.springframework.boot:spring-boot-starter-actuator"
    compile "org.springframework.boot:spring-boot-starter-web"
    //compile 'org.springframework.boot:spring-boot-starter-activemq:2.4.1'
    compile 'org.springframework.cloud:spring-cloud-starter-aws-secrets-manager-config'
    compile "org.springframework.cloud:spring-cloud-function-adapter-aws"
    compile 'com.amazonaws:amazon-sqs-java-messaging-lib'//:1.0.4' TODO Commented out
    //compile group: 'com.amazonaws', name: 'aws-java-sdk-dynamodb', version: '1.11.792' TODO Commented out
    implementation group: 'com.amazonaws', name: 'aws-lambda-java-events', version: '3.6.0'//'2.2.2'
    //implementation 'com.amazonaws:aws-lambda-java-core:1.2.1' TODO Commented out
    //testImplementation 'junit:junit:4.13.1' TODO Commented out
    //implementation group: 'com.amazonaws', name: 'aws-java-sdk-sqs', version: '1.11.993' TODO Commented out

    //implementation 'org.slf4j:slf4j-api:1.7.30' TODO Commented out
    
    // https://mvnrepository.com/artifact/org.w3c/dom
    implementation group: 'org.w3c', name: 'dom', version: '2.3.0'//-jaxb-1.0.6
    
    // https://mvnrepository.com/artifact/org.json/json
    implementation group: 'org.json', name: 'json', version: '20090211'
    
    // https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-sqs
    //implementation group: 'com.amazonaws', name: 'aws-java-sdk-sqs', version: '1.11.988'
    
    //implementation group: 'org.springframework.ws', name: 'spring-ws-core', version: '3.0.10.RELEASE' TODO Commented out
    
    // https://mvnrepository.com/artifact/com.sun.xml.messaging.saaj/saaj-impl
    implementation group: 'com.sun.xml.messaging.saaj', name: 'saaj-impl', version: '1.3'
    
    // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test
    //testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test' TODO Commented out
    
    runtimeOnly 'org.jlib:jlib-awslambda-logback:1.0.0'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'//Added to run tests in IDE

    compile "com.fasterxml.jackson.core:jackson-databind"
    compile 'xalan:xalan'
    compile 'commons-lang:commons-lang'
    compile 'net.logstash.logback:logstash-logback-encoder'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'

    //compile 'org.apache.commons:commons-lang3:3.11' TODO Commented out
    compile 'javax.xml.bind:jaxb-api:2.3.1'
    compile 'xerces:xercesImpl:2.8.1'
    compile 'org.mvel:mvel2:2.4.11.Final'
    
    //compile 'javax.xml.bind:jaxb-api:2.3.0' TODO Commented out
    compile 'javax.activation:activation:1.1'
    //compile 'org.glassfish.jaxb:jaxb-runtime:2.3.0' TODO Commented out
    //compile "org.springframework.boot:spring-boot-starter-actuator" TODO Commented out
    //compile "org.springframework.boot:spring-boot-starter-web" TODO Commented out

     testImplementation(platform("org.junit:junit-bom:5.7.0"))
        testImplementation('org.junit.jupiter:junit-jupiter-api')
        testCompile('org.junit.jupiter:junit-jupiter-params')
        testRuntime('org.junit.jupiter:junit-jupiter-engine')
        testCompile group: 'org.mockito', name: 'mockito-inline', version: '3.2.0'
        test.useJUnitPlatform() // fix "test events not received" bug in IDEA
        testCompile 'com.willowtreeapps.assertk:assertk-jvm:0.23'
}

jar {
    manifest {
        attributes "Main-Class": "com.cam.cam.orch.handler.CamOrchFunction"
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
    from('src/main/resources') {
        include '*'
     }
}

task buildZip(type: Zip) {
    from compileJava
    from processResources
    into('lib') {
        from configurations.runtimeClasspath
    }
    doLast{
        FileTree tree = fileTree('build/distributions')
        tree.each {
            println it.name
        }
    }
}

test {

    useJUnitPlatform {
        includeEngines 'junit-jupiter', 'junit-vintage'
    }
    reports.html.enabled = false
    reports.junitXml.enabled = true
}


task testReport {
    ant.taskdef(name: 'junitreport', classname: 'org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator', classpath: configurations.antJUnit.asPath)
    dependsOn subprojects*.test
    doFirst {
        mkdir "$buildDir/test-results"
        ant.junitreport(todir: "$buildDir/test-results") {
            subprojects.each {
                if (it.testResultsDir.exists()) {
                    fileset(dir: it.testResultsDir)
                }
            }
        }
    }
}