2

我想创建一个 RAML 验证器,它将获取RAML URL返回验证结果。为此,我使用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

为什么我会收到此错误?在此之前我得到了一些类未找到异常,因此我手动应用了下面的 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 内容。但这不是无效的 RAML,因此我可能做错了什么。

验证结果 转换为 RAML 对象

4

1 回答 1

1

从来没有见过这个错误。我怀疑您可能仍然会错过依赖项。

实际上,Java RAML 解析器比您手动添加的这几个 JAR具有更多的依赖关系。您在 中看到的依赖关系pom只是冰山一角,还有大量的传递依赖关系。

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

于 2015-09-05T15:51:07.040 回答