关于可接受的注入类型,请查看
@QueryParam文档. (这同样适用于所有其他@XxxParam注释)
>是一种原始类型
>有一个接受单个String参数的构造函数
>有一个名为valueOf或fromString的静态方法接受单个String参数(例如,参见Integer.valueOf(String))
>有一个ParamConverterProvider JAX-RS扩展SPI的注册实现,它返回一个ParamConverter实例,该实例能够为该类型进行“从字符串”转换.
> Be List< T>,Set< T>或者SortedSet< T>,其中T满足上面的2,3或4.生成的集合是只读的.
这些要求的原因是该值以字符串形式出现.运行时需要知道如何将字符串转换为要注入的类型.异常的原因是启动时有初始资源模型验证.此验证检查以确保所有注射点都有效.它看到注入的类型MyRequest不符合上述任何要求,并抛出异常.
基本上你有第2点和第3点,你需要自己解析字符串
public class MyRequest {
public static MyRequest fromString(string param) {
// 1. Parse string
// 2. Create MyRequest request;
return request;
}
}
您可以看到使用ParamConverter here的一个很好的例子