1

我有一个从 Java 类执行函数的功能。所以出于这个原因,我使用这个命令来获取类并创建一个新实例:

在此处输入图像描述

当我使用 maven (mvn test -Dtest...) 运行此功能时,一切正常。问题是当我使用空手道独立 jar 运行此功能时,空手道找不到 RCNUtils 类。

错误:

org.graalvm.polyglot.PolyglotException: TypeError: Access to host class utilities.RCNUtils is not allowed or does not exist.

在此处输入图像描述

GraalJS 错误: https ://github.com/oracle/graaljs/blob/master/docs/user/FAQ.md#typeerror-access-to-host-class-commyexamplemyclass-is-not-allowed-or-does-not -存在


我认为这是一个类路径问题,但我尝试了很多不同的路径和命令来执行 jar,但没有任何效果。

我不知道这是否是一个已知问题,或者是否有一个使用实用程序类并使用 karate.jar 执行的空手道示例

我用不同的空手道版本测试了这个问题。实际上我使用的是空手道 1.1.0

我尝试过的一些选项没有结果:

  1. 使用 -w / --workdir 参数更改没有结果的工作目录
  2. 使用 java -cp 而不是 java -jar 设置类路径如下: Unable to use read('classpath:') when running tests with Standalone karate.jar
  3. 使用 -Dkarate.config.dir 参数

注意:我不认为这是一个安全问题,因为如果我尝试在同一功能中使用“karate.read()”或“read()”获取“RCNUtils.java”文件,它会起作用。我想是因为我可以把文件的路径。问题是我不能将 java 类的路径放在“Java.type()”方法中

这里同样的错误: Executing Karate jar with mock using external library Spring Framework

提前致谢。

4

0 回答 0