错误:com.google.common.cache.CacheBuilder.from(Lcom / google / common / cache / CacheBuilderSpec;)Lcom / google / common / cache / CacheBuilder;

时间:2017-07-05 05:59:36

标签: java maven pom.xml pmml

使用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)
.....
.....

1 个答案:

答案 0 :(得分:1)

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