在RamlValidationService中获取java.lang.NoSuchFieldError:VALUE

我想创建一个RAMLvalidation器,它将获得RAML URL resturnvalidation结果。 为此我使用raml-java-parser 。 根据其自述文件,我尝试在下面的代码行执行:

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

并得到以下错误消息:

 java.lang.NoSuchFieldError: VALUE 

为什么我收到此错误? 在此之前,我得到了一些类未找到的exception,因此我手动应用了下面的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对象

从未见过这个错误。 我怀疑你可能仍然会遗漏依赖关系。

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

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