我有一个用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方法中的参数时,一切都很好。有谁知道怎么解决这个问题吗?
谢谢
发布于 2016-06-05 01:58:56
这个IncompatibleClassChangeError可能意味着您的类路径中有陈旧的(旧的) .class文件。您需要从头开始重新编译该项目。在IDE中使用“清洁项目”或“重建项目”命令,或者只删除输出目录(build或out或smth )。就像那样)。
并确保在IDE中启用了“运行前的项目”设置。
https://stackoverflow.com/questions/37619787
复制相似问题