获取java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: <init>在使用SBT运行P



java.lang.NoSuchMethodError:org.yaml.snakeyaml.constructor.SafeConstructor:方法()V不是建立位于io.swagger.v3.parser.util.DDeserializationUtils$CustomSnakeYamlConstructor。(反序列化Utils.java:397)位于io.swagger.v3.parser.util.DDeserializationUtils.readYamlTree(Deserialization Utils.java:209)位于io.swagger.v3.parser.util.DdeserializationUtils.deserializeIntoTree(反序列化Utils.java:145)位于io.swagger.v3.parser.OpenAPIV3Parser.readContents(OpenAPIV3Parser.java:168)位于io.swagger.v3.parser.OpenAPIV3Parser.readLocation(OpenAPIV3Parser.java:97)位于io.swagger.parser.OpenAPIParser.readLocation(OpenAPIParser.java:16)网址:com.atlassian.oai.validator.util.OpenApiLoader.readSwaggerParserResult(OpenApiLoader.java:79)网址:com.atlassian.oai.validator.util.OpenApiLoader.loadApi(OpenApiLoader.java:48)网址:com.atlassian.oai.validator.OpenApiInteractionValidator$Builder.build(OpenApiInteraction_validator.java:643)

这是在将snakeyaml的版本从1.3 更新到2.0 之后出现的

事实上,snakeyaml 2.0没有org.yaml.snakeyaml.constructor.SafeConstructor类的空arg构造函数。

在snakeyaml 1.33中,存在这样的构造函数,但已被弃用。

在snakeyaml 2.0中尝试取代

import org.yaml.snakeyaml.{LoaderOptions, Yaml}
import org.yaml.snakeyaml.constructor.SafeConstructor
val safeConstructor = new SafeConstructor
val yaml = new Yaml(safeConstructor)  

带有

val loaderOptions = new LoaderOptions
// loaderOptions.setCodePointLimit(...)
// ...
val safeConstructor = new SafeConstructor(loaderOptions)
val yaml = new Yaml(safeConstructor)

https://bitbucket.org/snakeyaml/snakeyaml/wiki/Documentation#markdown-收割台装载yaml

https://bitbucket.org/snakeyaml/snakeyaml/src/master/src/test/java/examples/SafeConstructorExampleTest.java

对我来说;uap-java";lib不支持";snakeyaml 2.0〃;。升级到最新版本(到目前为止从1.5.2升级到1.5.4)解决了这个问题。

最新更新