java.lang.AbstractMethodError:当我尝试使用nexmo(vonage)API启动出站语音呼叫时,出现此异常
所有相关依赖项的My pom.xml。没有其他依赖项在内部使用以下依赖项java.lang.AbstractMethodError:当我尝试使用nexmo(vonage)API启动出站语音呼叫时,出现此异常,java,spring-mvc,nexmo,abstractmethoderror,Java,Spring Mvc,Nexmo,Abstractmethoderror,所有相关依赖项的My pom.xml。没有其他依赖项在内部使用以下依赖项 com.fasterxml.jackson.core 杰克逊数据绑定 2.9.9 com.sparkjava 火花芯 2.6.0 com.vonage 客户 6.0.0 io.jsonwebtoken JJWTAPI 0.11.0 io.jsonwebtoken jjwtimpl 0.11.0 运行时 io.jsonwebtoken 杰克森 0.11.0 运行时 io.jsonwebtoken jjwt 0.9.1 使
com.fasterxml.jackson.core
杰克逊数据绑定
2.9.9
com.sparkjava
火花芯
2.6.0
com.vonage
客户
6.0.0
io.jsonwebtoken
JJWTAPI
0.11.0
io.jsonwebtoken
jjwtimpl
0.11.0
运行时
io.jsonwebtoken
杰克森
0.11.0
运行时
io.jsonwebtoken
jjwt
0.9.1
使用vonage SDK启动出站语音呼叫的Java代码
VonageClient client = VonageClient.builder().applicationId(APPLICATION_ID).privateKeyContents(PRIVATE_KEY).build();
Ncco ncco = new Ncco(TalkAction.builder(MESSAGE).voiceName(VOICE_TYPE).build());
CallEvent callEvent=client.getVoiceClient().createCall(newCall(TO_NUMBER,FROM_NUMBER, ncco));
执行代码时引发异常
java.lang.AbstractMethodError:接收器类
io.jsonwebtoken.impl.DefaultJwtBuilder未定义或继承
解析方法摘要的实现
io.jsonwebtoken.JwtBuilder signWith(java.security.Key,
接口的io.jsonwebtoken.SignatureAlgorithm)'
io.jsonwebtoken.JwtBuilder。
在com.nexmo.jwt.JwtGenerator.generate(JwtGenerator.kt:49)~[jwt-1.0.1.jar:?]
在com.nexmo.jwt.jwt.generate(jwt.kt:44)~[jwt-1.0.1.jar:?]
在com.nexmo.jwt.jwt.generate$default(jwt.kt:43)~[jwt-1.0.1.jar:?]
在com.nexmo.jwt.jwt.generate(jwt.kt)~[jwt-1.0.1.jar:?]
位于com.vonage.client.auth.JWTAuthMethod.apply(JWTAuthMethod.java:43)
~[client-6.0.0.jar:6.0.0]
位于com.vonage.client.AbstractMethod.applyAuth(AbstractMethod.java:127)
~[client-6.0.0.jar:6.0.0]
位于com.vonage.client.AbstractMethod.execute(AbstractMethod.java:73)
~[client-6.0.0.jar:6.0.0]
位于com.vonage.client.voice.CallsEndpoint.post(CallsEndpoint.java:57)
~[client-6.0.0.jar:6.0.0]
位于com.vonage.client.voice.VoiceClient.createCall(VoiceClient.java:61)
~[client-6.0.0.jar:6.0.0]
位于com.senpiper.core.listener.VoiceCallListener.listen(VoiceCallListener.java:37)
~[classes/:?]
在jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:?]
位于jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:?]
在jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
在java.lang.reflect.Method.invoke(Method.java:566)~[?:?]
该问题是指:
io.jsonwebtoken
POM文件中的以下内容就足够了:
io.jsonwebtoken
-当争论开始时。Maven在处理依赖项副本时可能有点古怪。在本例中,因为您明确地引用了jjwt
的0.9.1
,所以它引入了一个不兼容的版本。如果我必须在黑暗中尝试一下,我会猜测对非模块化jjwt
包的引用会优先于其他依赖项-这就是为什么它被拉入而不是其他依赖项的原因
不管怎样-只需删除旧的jjwt
包中的引用即可解决您的问题。请发布您的整个POM文件,此问题很可能是POM文件中以前的依赖项拉入了过时版本的jjwt
。我删除了该jjwt依赖项,但仍然得到了相同的错误。请验证它是否真的超出了依赖项树-检查拉入的是哪个版本的jjwt
-我可以通过在vonage依赖项之前添加jjwt依赖项,并且能够通过删除它来修复它,依赖项树中的某些内容对0.10.5
之前版本的jjwt