개발/spring

[security] jwt NoClassDefFoundError: javax/xml/bind/DatatypeConverter

방푸린 2024. 1. 27. 22:16
반응형

환경: java 17, springboot 2.7.6

 

아래 라이브러리를 사용하여 JWT토큰 파싱할 때 에러날 경우

소스:

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>
subject = Jwts.parser().setSigningKey(environment.getProperty("token.secret"))
        .parseClaimsJws(jwt).getBody()
        .getSubject();

에러:

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
	at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26) ~[jjwt-0.9.1.jar:0.9.1]
	at io.jsonwebtoken.impl.DefaultJwtParser.setSigningKey(DefaultJwtParser.java:151) ~[jjwt-0.9.1.jar:0.9.1]
	at com.example.gatewayservice.filter.AuthorizationFilter.isValidJwt(AuthorizationFilter.java:54) ~[classes/:na]

 

해결:

아래 디펜덴시를 추가하면 해결

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>

 

https://medium.com/@jiri.caga/java-lang-classnotfoundexception-javax-xml-bind-datatypeconverter-in-java-17-solved-499d0ea776d0

728x90
반응형