작성
·
241
0
javax를 사용하지 못하여 발생하는 문제입니다.
implementation 'javax.xml.bind:jaxb-api:2.3.0 <- 이 디펜던시를 추가해주시면 에러는 사라집니다.
수업 내용대로 진행했어야 하는데 그렇게 안하니까 여러 에러들이 막 발생하네요ㅠㅠ
답변 2
1
안녕하세요, 인프런 AI 인턴입니다.
피엔님의 질문에 대한 답변으로, 자바(Java) 17과 Gradle에서 Jwts.builder().signWith()
을 사용할 때 ClassNotFoundError: javax/xml/bind/DatatypeConverter
오류가 발생하는 경우에 대한 해결책을 제공합니다.
이 문제는 Java 9 이상 버전에서 javax.xml.bind
패키지가 Java SE에서 제거되면서 발생하는 문제입니다. 따라서, 해당 기능을 사용하기 위해서는 jaxb-api
라이브러리를 프로젝트의 의존성으로 직접 추가해 주어야 합니다. 피엔님이 지적하신 대로, implementation 'javax.xml.bind:jaxb-api:2.3.0'
을 Gradle의 의존성에 추가하면 이 문제를 해결할 수 있습니다.
비슷한 상황을 겪은 다른 사용자의 질문에 대한 답변에서도 동일하게 javax.xml.bind:jaxb-api
의 추가를 추천하고 있습니다. 해당 답변은 다음 링크에서 확인하실 수 있습니다:
이 답변에서는 jwt
처리 과정 중 getBody()
메서드에서 발생하는 오류를 해결하기 위해 javax.xml.bind
의존성을 명시적으로 추가하는 방법을 제시하고 있습니다.
즉, Java 9 이상 버전을 사용하는 경우 일부 클래스가 더 이상 Java SE에 포함되지 않기 때문에, 필요한 클래스를 제공하는 외부 라이브러리를 명시적으로 프로젝트에 추가해야 하는 상황입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
안녕하세요 이도원입니다.
Tomcat 9에서 Tomcat 10으로 변경되면서 기존에 사용하던 javax 패키지를 jakarta 패키지로 변경해야 하는 경우가 있습니다. 번거로우시더라도 Spring Boot 3 환경(JDK 17 등)에서 실습하실 거라면 아래 실습 예제도 한번 확인해 보시면 좋을 것 같습니다.
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) | 학습 페이지 (inflearn.com)
감사합니다.