spring无法在休息服务中实例化UriInfo

时间:2017-02-15 13:18:56

标签: rest spring-boot jax-rs

我尝试使用UriInfo获取请求参数列表,这是我的代码:

@RestController public class MyController {
@RequestMapping(value = "/documents", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
 public Object getDocuments( @Context UriInfo uriInfo,  
 @RequestParam(value    = "sta", required = false) String param1,      @RequestParam(value = "sta2", required   = false) String param2){

  MultivaluedMap<String, String> queryParamList = uriInfo.getQueryParameters();

}

此代码导致此异常: org.springframework.beans.BeanInstantiationException:无法实例化[javax.ws.rs.core.UriInfo]:指定的类是一个接口

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

因为UriInfo不是Spring MVC对象。它是一个JAX-RS对象,你没有使用JAX-RS,你正在使用Spring MVC。使用Spring MVC,如果您只想要参数映射,可以使用@RequestParam

注入它
public Object getDocuments(@RequestParam MultiValueMap<String, String> requestParams)

注意,MultiValueMap是一个Spring类,它不是JAX-RS MultivaluedMap

另见: