我正在尝试使用JAX-RS中的@BeanParam注释。
它与Apache cxf 2.7.7完美配合,但在升级到Apache cxf 3.0.1后,它无效。在我的休息服务中,bean param为null,我得到NullPointerException。
我尝试过使用cxf 3.0.3但结果是一样的。
我的RestService看起来像
Class MyService {
@BeanParam
private MyBean params;
@Path("/test")
public Response testIt() {
// params is null here
}
}
class MyBean {
@QueryParam
private String message;
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return this.message;
}
}
我在gradle中的依赖性看起来像
def cxfVersion = "3.0.1"
ext.libraries = [
cxf: [
"org.apache.cxf:apache-cxf:$cxfVersion",
"org.apache.cxf:cxf-rt-frontend-jaxrs:$cxfVersion"
]
有没有人知道从cxf 2.7.7到cxf 3.0.x的变化是什么,这会使它无效。
答案 0 :(得分:0)
我发现了问题。这是因为classpath(版本2.3.3)中存在另一个来自其他项目依赖项的cxf版本jar。不知怎的,它优先于3.x版本而且没有BeanParam的支持。
从classpath中删除那个jar对我有用。