String token = Jwts.builder()
.setClaims(claims)
.setIssuedAt(now)
.setExpiration(new Date(now.getTime() + tokenValidMillisecond))
.signWith(SignatureAlgorithm.HS256, secretKey) // 암호화 알고리즘, secret 값 세팅
.compact();
이 코드의 signWith() 에서 아래 에러가 발생했다.
java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
해결 방법
아래 의존성 추가하기
Maven은
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
Gradle은
implementation 'javax.xml.bind:jaxb-api:2.3.1'
발생 이유?
자바 11 이상에서는 JAXB (Java Architecture for XML Binding)가 JDK에서 제거되었습니다 (JEP 320에 따라 다른 JEE 관련 모듈과 함께). 이 때문에 프로젝트에 별도의 라이브러리로 추가해야 합니다.
- JEE (Java Platform, Enterprise Edition): 엔터프라이즈 분야에서 자바 기술을 활용하기 위한 표준 규격 집합
- JEP (JDK Enhancement Proposal): 자바 개발 팀에서 제안하는 JDK 개선 사항
참조
'Development > Diary' 카테고리의 다른 글
[Diary] Spring 테스트 관리 트랜잭션(Test-managed transactions)과 테스트 생명주기 + 멀티 스레드에서 테스트 문제 (1) | 2024.06.02 |
---|---|
[개발 일기] Hibernate의 UUID 변환과 PostgreSQL, H2 DB에 저장할 때 동작 + Foreign Key Constraint (1) | 2024.04.18 |
[개발 일기] 이게 왜 null이 아니야 (영속성 컨텍스트에서 같은 Entity를 참조!) (0) | 2024.02.24 |
[Diary] Primary key 타입은 숫자랑 GUID(UUID)중에 어떤 걸 쓸까요? (0) | 2024.02.22 |
[개발 일기] OSIV가 false일 때 LazyInitializationExceptions (0) | 2024.02.21 |