gpt4 book ai didi

java - NoClassDefFoundError com.google.common.collect.Lists

转载 作者:行者123 更新时间:2023-11-30 02:42:42 24 4
gpt4 key购买 nike

我正在使用 Jersey(或尝试)来开发 RESTful API + App Engine 上的一些 JSP 页面。我得到的错误显然表明 Guava 有问题。

[INFO] GCLOUD: WARNING: Error starting handlers [INFO] GCLOUD: java.lang.NoClassDefFoundError: com/google/common/collect/Lists

我的理解是,对于 Jersey 的版本,我应该使用专门重新打包的 guava 版本来匹配。这是不正确的吗?我需要添加哪个版本的 Guava 作为依赖项才能最终消除此错误消息?

这是我根据 Maven 的依赖树。 Guava 可以在第二行找到。

[INFO] +- com.google.appengine:appengine-api-1.0-sdk:jar:1.9.48:compile
[INFO] +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25:compile
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- jstl:jstl:jar:1.2:compile
[INFO] +- org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25:compile
[INFO] | +- org.glassfish.hk2.external:javax.inject:jar:2.5.0-b30:compile
[INFO] | +- org.glassfish.jersey.core:jersey-common:jar:2.25:compile
[INFO] | | +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] | | +- org.glassfish.hk2:hk2-api:jar:2.5.0-b30:compile
[INFO] | | | +- org.glassfish.hk2:hk2-utils:jar:2.5.0-b30:compile
[INFO] | | | \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b30:compile
[INFO] | | +- org.glassfish.hk2:hk2-locator:jar:2.5.0-b30:compile
[INFO] | | | \- org.javassist:javassist:jar:3.20.0-GA:compile
[INFO] | | \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
[INFO] | +- org.glassfish.jersey.core:jersey-server:jar:2.25:compile
[INFO] | | +- org.glassfish.jersey.core:jersey-client:jar:2.25:compile
[INFO] | | +- org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25:compile
[INFO] | | \- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | \- javax.ws.rs:javax.ws.rs-api:jar:2.0.1:compile
[INFO] +- org.glassfish.jersey.ext:jersey-mvc-jsp:jar:2.4:compile
[INFO] | \- org.glassfish.jersey.ext:jersey-mvc:jar:2.4:compile
[INFO] \- javax.ejb:javax.ejb-api:jar:3.2:compile
[INFO] \- javax.transaction:javax.transaction-api:jar:1.2:compile

这是我的编译目标的 lib 文件夹,Guava 就在那里,我没有看到它有冲突。

aopalliance-repackaged-2.5.0-b30.jar
appengine-api-1.0-sdk-1.9.48.jar
hk2-api-2.5.0-b30.jar
hk2-locator-2.5.0-b30.jar
hk2-utils-2.5.0-b30.jar
javassist-3.20.0-GA.jar
javax.annotation-api-1.2.jar
javax.ejb-api-3.2.jar
javax.inject-2.5.0-b30.jar
javax.transaction-api-1.2.jar
javax.ws.rs-api-2.0.1.jar
jersey-client-2.25.jar
jersey-common-2.25.jar
jersey-container-servlet-core-2.25.jar
jersey-guava-2.25.jar
jersey-media-jaxb-2.25.jar
jersey-mvc-2.4.jar
jersey-mvc-jsp-2.4.jar
jersey-server-2.25.jar
jstl-1.2.jar
osgi-resource-locator-1.0.1.jar
validation-api-1.1.0.Final.jar

之前我也遇到过类似的错误,大概是出于类似的原因,但在更改为当前的 Guava 版本(从 22.0 官方版本重新打包为 2.25)并运行 maven clean install 后,该错误似乎消失了。

[INFO] GCLOUD: WARNING: failed JettyContainerService$ApiProxyHandler@44578632: java.lang.NoSuchMethodError: org.glassfish.jersey.server.model.internal.ModelProcessorUtil.enhanceResource(Lorg/glassfish/jersey/server/model/RuntimeResource;Lorg/glassfish/jersey/server/model/ResourceModel$Builder;Ljava/util/List;)V

任何帮助将不胜感激,在经历了之前的挣扎之后,我几乎要完全放弃 Jersey 了。

帮助我奥比万·克诺比。你是我唯一的希望。

最佳答案

自从我解决这个问题以来已经有一段时间了,有些人可能不认为降级版本是一个解决方案,因为这并不总是一个可取的事情。然而,我更关心的是让事情正常运转,而不是处于前沿。

  1. 将 jersey、jersey-guava 和所有附带的 jersey- 库从 2.25 降级到 2.22.1

  2. 将 h2k-api、h2k-locator、h2k-utils 从 2.5.0 降级到 2.4.0 以匹配。

此项目针对应用程序引擎版本 1.9.44

关于java - NoClassDefFoundError com.google.common.collect.Lists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com