Spring Boot에서 XML Parsing을 위해 jackson 라이브러리를 사용했다.
Spring Boot에서는 기본적으로 jackson을 사용할 수 있지만 xml을 다루기 위해서는 jackson-dataformat-xml library를 추가해줘야한다.
Maven Repository: com.fasterxml.jackson.dataformat » jackson-dataformat-xml
처음엔 그냥 최신 버전이고 usage도 많은 2.17.2를 사용했다.
그래서 XML Parsing을 시도했더니 이런 오류들이 발생했다.
String xml = "<person><name>John</name><age>13</age></person>";
XmlMapper xmlMapper = new XmlMapper();
JsonNode flower = xmlMapper.readTree(xml.getBytes());readTree 메서드를 사용할 때
'void com.fasterxml.jackson.core.io.IOContext.close()'
java.lang.NoSuchMethodError: 'void com.fasterxml.jackson.core.io.IOContext.close()'readValue 메서드를 사용할 때
'com.fasterxml.jackson.databind.PropertyName com.fasterxml.jackson.databind.PropertyName.merge(com.fasterxml.jackson.databind.PropertyName, com.fasterxml.jackson.databind.PropertyName)'원인은 버전 차이에 있었다.
현재 버전의 Spring Boot가 사용하는 com.fasterxml.jackson.core 버전과 내가 추가한 jackson-dataformat-xml 버전이 일치해야 한다. (비슷해도 된다)
그래서 내가 사용하는 Spring Boot 버전에서 사용하는 dependencies 버전들을 확인해봤다.
jackson 2.15.3 버전을 사용하는 것으로 나와서 jackson-dataformat-xml 버전을 2.15.3으로 변경했다.
그 이후엔 잘 동작하였다.