使用JPMML库时出现奇怪的运行时错误(使用 guava )。
我在 pom.xml 中使用了与jpmml相关的依赖项,如下所示
<dependency>
<groupId>org.jpmml</groupId>
<artifactId>pmml-evaluator</artifactId>
<version>1.3.6</version>
</exclusions>
</dependency>
它开始抛出异常。然后我尝试如下。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency>
<groupId>org.jpmml</groupId>
<artifactId>pmml-evaluator</artifactId>
<version>1.3.6</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
我尝试使用11.x / 12.x / 15.x / 18.x / 19.x / 20.x版本的 guava 但我仍面临同样的异常。我已经通过谷歌和人们使用 guava-19.0 版本,它适用于他们,但我无法实现这一点。有人可以告诉我,我错过了什么。
请在下面找到完整的堆栈跟踪。
java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.from(Lcom/google/common/cache/CacheBuilderSpec;)Lcom/google/common/cache/CacheBuilder;
at org.jpmml.evaluator.CacheUtil.newCacheBuilder(CacheUtil.java:97)
at org.jpmml.evaluator.CacheUtil.buildLoadingCache(CacheUtil.java:90)
at org.jpmml.evaluator.ModelEvaluator.<clinit>(ModelEvaluator.java:660)
at org.jpmml.evaluator.ModelEvaluatorFactory.newModelEvaluator(ModelEvaluatorFactory.java:80)
at org.jpmml.evaluator.ModelEvaluatorFactory.newModelEvaluator(ModelEvaluatorFactory.java:66)
.....
.....
答案 0 :(得分:1)
看起来你在maven pom中有正确的版本,但在运行时它选择旧版本,确保它在运行时选择正确的版本。检查数据节点上的类路径。