Как решить snakeyaml NoSuchMethodError: getStyle()
В моем весеннем загрузочном приложении я использую snakeyaml для разбора файла YAML. Я получаю следующую ошибку при использовании библиотеки:
java.lang.NoSuchMethodError: org.yaml.snakeyaml.nodes.ScalarNode.getStyle()Ljava/lang/Character;
Я использую следующую Maven зависимость:
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.21</version>
</dependency>
У кого-нибудь есть подсказка для устранения этой ошибки?
Редактировать:
Кажется, ошибка возникает при разборе application.yml в Spring:
server:
port: 8084
2 ответа
Решение
Это связано с этим изменением:
Refactor ScalarNode - используйте enum ScalarStyle вместо Character
Вы можете либо вернуться к SnakeYaml 1.19, который является последним выпуском перед этим изменением, либо подождать, пока Spring Boot поддержит SnakeYaml 1.20+.
Вам нужно обновить до SnakeYml 1.23, они исправили несовместимое изменение API, появившееся в 1.20.
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.23</version>
</dependency>