我正在尝试使用空手道检查验证json模式,而我正面临着这个问题:
java.lang.RuntimeException:JavaScript评估失败:Java.type('com.intuit.karate.demo.util.SchemaUtils'),java.lang.ClassNotFoundException:com.intuit.karate.demo.util.SchemaUtils < / p>
我的pom依赖项是:
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-apache</artifactId>
<version>${karate.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-junit4</artifactId>
<version>${karate.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.masterthought</groupId>
<artifactId>cucumber-reporting</artifactId>
<version>3.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.java-json-tools</groupId>
<artifactId>json-schema-validator</artifactId>
<version>2.2.8</version>
</dependency>
</dependencies>
Feature file syntax and json files locations
有人可以建议如何解决此问题吗?
答案 0 :(得分:1)
请提供完整的堆栈跟踪信息以及源代码。 您是否计划使用此软件包“ com.intuit.karate.demo.util.SchemaUtils”(不知道它是否默认包含在库中)
编辑:
撇开不良的编码习惯:您可以进入脚本小子模式,从实际的演示中获取com.intuit.karate.demo.util.SchemaUtils -package,然后可能再也不会收到错误了。如前所述,您可能误解了如何使用该库。您可能正在从教程/演示中调用函数,这些函数当然不在您的项目中。
答案 1 :(得分:1)
我删除了此依赖关系,并且一切正常。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
</dependency>
答案 2 :(得分:0)
SchemaUtils是空手道演示中可用的类,未与空手道核心一起打包
因此,如果要使用SchemaUtils复制该类并将其保留在项目中,并为Java互操作提供正确的包路径
例如
Java.type('<your new package>.SchemaUtils')