ExecutionStrategy 构造方法上的异常 java.lang.NoSuchMethodError

Posted

技术标签:

【中文标题】ExecutionStrategy 构造方法上的异常 java.lang.NoSuchMethodError【英文标题】:Exception java.lang.NoSuchMethodError on ExecutionStrategy constructor method 【发布时间】:2019-02-09 15:32:24 【问题描述】:

我在一个 Java 项目上使用 GraphQL,它在服务器上运行。 当我更改为另一台服务器时,它停止工作并抛出以下异常:

java.lang.NoSuchMethodError: graphql.execution.ExecutionStrategy.(Lgraphql/execution/DataFetcherExceptionHandler;)V 在 graphql.execution.AbstractAsyncExecutionStrategy.(AbstractAsyncExecutionStrategy.java:19) 在 graphql.execution.AsyncExecutionStrategy.(AsyncExecutionStrategy.java:23) 在 graphql.GraphQL$Builder.(GraphQL.java:199) 在 graphql.GraphQL.newGraphQL(GraphQL.java:166)

我使用的是完全相同的 Java 版本 (1.8.0_181)、相同的 graphql-java 依赖版本 (7.0) 和相同的项目版本。

我错过了什么吗?有同样问题的人吗?

提前致谢,

解决方案

在分析了我的每个项目依赖项的依赖项后,我注意到 graphql-java-annotations 正在导入 3.0 版的 graphql-java 库。 graphql-java 库是我之前提到的项目依赖项之一(使用的是 7.0 版)。

因此,两个不同版本的 graphql-java 被引用并相互冲突。

为了解决这个问题,我删除了 graphql-java 依赖,并开始只使用在 graphql-java-annotations 上导入的版本。

【问题讨论】:

【参考方案1】:

通常这是因为依赖冲突。

您可以将其添加到您的 pom 中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <compilerArgs>
                    <arg>-verbose</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

然后尝试打包您的应用程序,它将记录从哪个 jar 加载 graphql.execution.ExecutionStrategy 类。然后你可以检查它是否是正确的版本。

【讨论】:

是否对 pom 进行了建议的更改,并检查了 graphql.execution.ExecutionStrategy 是从哪个 jar 导入的。使用的jar是graphql-java-7.0,没错。 maven 包的输出:[loading ZipFileIndexFileObject[.m2/repository/com/graphql-ja va/graphql-java/7.0/graphql-java-7.0.jar(graphql/ExecutionResult.class)]] 有什么建议吗? @JoséMiguelMelo 也许你可以尝试更新版本到&lt;version&gt;9.2&lt;/version&gt; 我解决了问题并将解决方案添加到问题中。一个小问题:正如解决方案中提到的,我将 graphql-java (v7.0) 和 graphql-java-annotation 库作为依赖项。最后一个作为依赖 graphql-java (v3.0)。 Graphql-java 版本相互冲突。不应该将内部依赖项替换为我的项目 pom.xml 中指定的依赖项吗? @JoséMiguelMelo 不是专家,但也许 可以解决它。 ***.com/questions/2619598/…

以上是关于ExecutionStrategy 构造方法上的异常 java.lang.NoSuchMethodError的主要内容,如果未能解决你的问题,请参考以下文章

如何不利用一个额外的变量来达到交换两个变量值的目的-------位上的异或运算

树状数组区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D

SQL注入学习总结:其他SQL注入的异或注入

线性基

P5169 xtq的异或和(FWT+线性基)

云边端一体化的异构AI计算