【问题标题】:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter while decoding JWT token with Java 11java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 使用 Java 11 解码 JWT 令牌时
【发布时间】:2022-07-25 23:09:03
【问题描述】:

当调用此方法解码 JWT 令牌 javax.xml.bind.DatatypeConverter.parseBase64Binary(encoded) 时,我收到此异常:

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1082)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)


Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26)
at io.jsonwebtoken.impl.Base64UrlCodec.decode(Base64UrlCodec.java:78)
at io.jsonwebtoken.impl.AbstractTextCodec.decodeToString(AbstractTextCodec.java:36)
at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:251)
at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:481)
at io.jsonwebtoken.impl.DefaultJwtParser.parseClaimsJws(DefaultJwtParser.java:541)

我在项目中有这个外部库:

implementation "jakarta.xml.bind:jakarta.xml.bind-api:3.0.1"
  implementation "org.glassfish.jaxb:jaxb-runtime:3.0.2"
  io.jsonwebtoken:jjwt:0.9.1
javax.xml.bind:jaxb-api:2.3.1

在外部库 javax.xml.bind:jaxb-api:2.3.1 中,我可以找到代码中使用的 javax/xml/bind/DatatypeConverter,所以我不明白为什么会收到 NoClassDefFoundError。

我在项目和 Spring Boot 上使用 Java 11。

感谢您的帮助。

【问题讨论】:

    标签: java spring spring-boot authentication jwt


    【解决方案1】:

    在 gradle 中添加这一行。

    实现'javax.xml.bind:jaxb-api:2.4.0-b180830.0359'

    将您的 javax.xml.bind:jaxb-api 降级为特定版本。

    【讨论】:

      猜你喜欢
      • 2023-01-23
      • 2017-08-15
      • 2022-06-12
      • 2018-06-06
      • 1970-01-01
      • 2017-09-20
      相关资源
      最近更新 更多