Getting java.lang.NoSuchFieldError: VALUE in RamlValidationService

Getting java.lang.NoSuchFieldError: VALUE in RamlValidationService

我想创建一个 RAML 验证器来获得 RAML URLs resturn validation results. For that Im using raml-java-parser。根据其自述文件,我尝试执行以下代码行:

String sourceUrl = "http://api.apihub.com/onpositive/api/espn-raml-api/espn.raml";
List<ValidationResult> results = RamlValidationService.createDefault().validate(sourceUrl);

并得到以下错误信息:

java.lang.NoSuchFieldError: VALUE

为什么会出现此错误?在此之前,我遇到了一些 class not found 异常,因此我手动应用了以下 jar 库。

> juniversalchardet_1.0.3_1.0.0.jar 
> raml_parser_0.8.11_1.0.0.jar
> rhino_1.7R4_1.0.0.jar 
> snakeyaml-1.16.jar
> jackson_databind_2.4.4_1.0.0.jar

我也试过下面的东西。 inputStream是我通过ByteArrayInputStream解析出来的RAML内容。但是 this 不是无效的 RAML,因此我可能做错了什么。

从未见过此错误。我怀疑您可能仍然缺少依赖项。

确实,Java RAML 解析器 has more dependencies 比您手动添加的这几个 JAR 还要好。您在 pom 中看到的依赖关系只是冰山一角,还有大量的传递依赖关系。

因此:为您的项目使用合适的依赖管理器(如 Maven)。它将负责为您带来所有依赖项(直接和传递)。此外,除非这是一个玩具项目,否则您无论如何都需要一个合适的构建工具。