gpt4 book ai didi

Java Rest Service POST 对 InnerClasses 属性存在分歧

转载 作者:行者123 更新时间:2023-12-01 18:04:38 27 4
gpt4 key购买 nike

我有一个用 Java 编写的 REST 服务。我有一个运行良好的 GET 方法,现在我想实现 POST 方法。

@POST
@Consumes(MediaType.APPLICATION_JSON)
public void post(String ext){
System.out.println("In the POST method");
System.out.println(ext);
}

我还有一个 CORS 过滤器,因为我正在本地主机上工作并在本地主机上发送内容。

Provider
public class CORSFilter implements ContainerResponseFilter {

@Override
public void filter(final ContainerRequestContext requestContext,
final ContainerResponseContext cres) throws IOException {
cres.getHeaders().add("Access-Control-Allow-Origin", "*");
cres.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization");
cres.getHeaders().add("Access-Control-Allow-Credentials", "true");
cres.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
cres.getHeaders().add("Access-Control-Max-Age", "1209600");
}
}

一旦我在 POST 方法中添加参数,就会收到以下错误:

WARNING: HK2 service reification failed for [com.movierestservice.resources.MoviesResource$CORSFilter] with an exception:
MultiException stack 1 of 2
java.lang.IncompatibleClassChangeError: com.movierestservice.resources.MoviesResource and com.movierestservice.resources.MoviesResource$CORSFilter disagree on InnerClasses attribute
at java.lang.Class.getDeclaringClass0(Native Method)
at java.lang.Class.getDeclaringClass(Class.java:1235)
at java.lang.Class.getEnclosingClass(Class.java:1277)
at java.lang.Class.getSimpleBinaryName(Class.java:1443)
at java.lang.Class.isMemberClass(Class.java:1433)

等等....

当我删除 POST 方法中的参数时,一切都很好。有人知道如何解决这个问题吗?

谢谢

最佳答案

IncompleteClassChangeError 可能意味着您的类路径中有过时的(旧的).class 文件。您需要从头开始重新编译该项目。在 IDE 中使用“清理项目”或“重建项目”命令,或者仅删除输出目录(buildout 或诸如此类)。

并确保您已在 IDE 中启用“运行前创建项目”设置。

关于Java Rest Service POST 对 InnerClasses 属性存在分歧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37619787/

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