小编典典

spring无法在rest服务中实例化UriInfo

spring-boot

我尝试使用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]:指定的类是接口

感谢帮助


阅读 553

收藏
2020-05-30

共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

2020-05-30