This question already has an answer here:
Spark 1.5.1, Cassandra Connector 1.5.0-M2, Cassandra 2.1, Scala 2.10, NoSuchMethodError guava dependency
                            
                                (1个答案)
                            
                    
                2年前关闭。
        

    

使用JPMML库(使用番石榴)时出现奇怪的运行时错误。

我在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版本的番石榴,但是我仍然面临着同样的异常。我已经通过谷歌和人们已经使用了番石榴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)
.....
.....

最佳答案

看起来您在maven pom中具有正确的版本,但是在运行时它选择的是旧版本,请确保它在运行时选择了正确的版本。检查数据节点上的类路径。

09-05 00:45