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


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)

我对格拉德尔还比较陌生。我正在向AWS SQS死信队列发送消息。我一直收到上面的错误。同一个类首先尝试基于筛选器将消息传递到另一个队列,如果不成功,则将消息发送到dlq。我已经测试了快乐之路,它是有效的。生成了错误字符串,但将消息发送到dlq不起作用。我读到这是最常见的与sdk的冲突,但我一直无法解决它。这是我的build.gradle文件:

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)
}
}
}
}
}

任何帮助都会很棒。

我建议放弃旧的V1 API,代之以针对Java V2的AWS SDK。亚马逊建议使用v2:

Java2.x的AWS SDK是对1.x版本代码库的主要重写。它构建在Java8+之上,并添加了一些经常需要的功能。其中包括对非阻塞I/O的支持,以及在运行时插入不同HTTP实现的能力

用于Java V2的AWS SDK可以很好地与Spring框架配合使用。有一个教程展示了SQS服务和Spring框架的使用。然而,它使用的是POM文件,而不是Gradle。然而,它可能会对你有所帮助。

使用AWS SDK for Java 创建示例消息应用程序

V1没有像这样的端到端教程。

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

相关内容

  • 没有找到相关文章

最新更新