Dhy*_*ani 5 java spring-mvc nexmo abstractmethoderror
我所有相关依赖项的 pom.xml。没有其他依赖项在内部使用以下依赖项。
<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.9</version>
    </dependency>
<dependency>
      <groupId>com.sparkjava</groupId>
      <artifactId>spark-core</artifactId>
      <version>2.6.0</version>
    </dependency>
    <dependency>
      <groupId>com.vonage</groupId>
      <artifactId>client</artifactId>
      <version>6.0.0</version>
    </dependency>
    <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt-api</artifactId>
      <version>0.11.0</version>
    </dependency>
    <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt-impl</artifactId>
      <version>0.11.0</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt-jackson</artifactId>
      <version>0.11.0</version>
      <scope>runtime</scope>
    </dependency>
<dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>
      <version>0.9.1</version>
    </dependency>
使用 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 没有定义或继承接口的已解析方法 'abstract 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] at com.vonage.client.AbstractMethod.execute(AbstractMethod.java:73) ~[client -6.0.0.jar:6.0.0] 在 com。
问题是参考:
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>        
</dependency>
删除此依赖项将解决您的问题。该软件包已被前面的三个软件包取代,它们是同一软件包的模块化版本,请参阅 v0.10.0发行说明了解详细信息,POM 文件中的以下内容就足够了:
<dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt-api</artifactId>
      <version>0.11.0</version>
</dependency>
<dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt-impl</artifactId>
      <version>0.11.0</version>
      <scope>runtime</scope>
</dependency>
<dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt-jackson</artifactId>
      <version>0.11.0</version>
      <scope>runtime</scope>
</dependency>
Vonage SDK 依赖于 jjwt v0.10.5,您的应用程序所依赖的方法是在v0.10.0中引入的- 当参数翻转时。在处理依赖项的副本时,Maven 可能有点古怪。在这种情况下,因为您显式地引用0.9.1它,所以jjwt它会引入不兼容的版本。如果我不得不在黑暗中尝试,我猜对非模块化jjwt包的引用先于其他依赖项 - 这就是为什么它被拉入而不是其他依赖项。
无论如何 - 只需删除旧包的引用jjwt- 这将解决您的问题。
| 归档时间: | 
 | 
| 查看次数: | 204 次 | 
| 最近记录: |