gpt4 book ai didi

java.lang.NoSuchMethodError : javax/ws/rs/core/MultivaluedMap. addAll

转载 作者:行者123 更新时间:2023-12-02 09:43:22 26 4
gpt4 key购买 nike

我正在使用所有最新的 jar 以及 Java 8 和 Java EE 6 版本,得到 java.lang.NoSuchMethodError .

尝试过 jersey-client-2.27.jar , 2.26 , 2.28版本,仍然有同样的问题,甚至检查了该方法在相应的jar中是否可用。

    Client client = ClientBuilder.newClient();
WebTarget sendWT = client.target(blueMailUrl);

Invocation.Builder builder = sendWT
.request(MediaType.APPLICATION_JSON)
.header(
"Authorization",
"Basic " + DatatypeConverter.printBase64Binary((byte[]) (blueMailUserid + ":" + blueMailPassword).getBytes("UTF-8"))
);

它不应该抛出此错误。

最佳答案

很可能类路径中 jersey-jar“前面”的其他一些 jar 包含旧版本的 MultivaluedMap。

将以下行添加到您的代码中(在发生错误的位置之前)

System.out.println(getClass().getClassLoader().getResource("javax/ws/rs/core/MultivaluedMap.class"));

这将输出找到它的类的位置,类似于

jar:file:/D:/myide/workspace/MyProject/lib/jars/someotherlibrary.jar!/javax/ws/rs/core/MultivaluedMap.class

解决这个问题取决于上面调用的实际结果,整个事情被称为 Jar-Hell。它可以在您的 IDE 中工作,因为在那里设置的类路径似乎与运行应用程序时设置的类路径不同。

编辑(现在位置已知):EE6 的 j2ee.jar 包含一个没有 addAll 方法的 MultvaluedMap,因为 j2ee.jar 似乎位于您的 Jersey jar 之前的类路径中有这个问题。正如 NoSuchMethodError: MultivaluedMap.addAll in Jersey Client 中所讨论的解决方案是使用 Jersey 1.8 或使用 J2EE 7。此处未讨论的另一个解决方案是不完全使用 j2ee.jar,而仅使用您实际使用的子项目的 jar,例如activation.jar 和 javamail.jar(如果您仅使用它来发送邮件等)

关于java.lang.NoSuchMethodError : javax/ws/rs/core/MultivaluedMap. addAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56872806/

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