用jersey做rest 应用的时候,在resource类中,声明了一个如下的参数:
@Path("/{type}/hits")
public class HitsResource {
private CacheType type;
public HitsResource(@PathParam("type") CacheType type) {
this.type = type;
}
...
,运行的时候报错:
Missing dependency for constructor public 。。。
经查,发现jersey的开发人员,说了如下一句话:
For 1.3 i turned on error checking for missing dependencies rather
than injecting null values.
明白了,因为我的CacheType是个枚举类,这样,如果{type}参数传递的值不在这个枚举中的话,就会导致程序出错。
于是改变了一下构造方法,问题解决:
public HitsResource(@PathParam("type") String type) {
this.type = CacheType.valueOf(type);
}