【发布时间】: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 上导入的版本。
【问题讨论】: