java spring编译错误:无法访问ParameterizedTypeReference
我的任务是修改一个旧的Spring应用程序,我需要添加一些rest调用。当我尝试使用RestTemplate时,我遇到了一系列错误,并结束了从Spring2的升级。x到4。x、 我现在得到:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-
plugin:2.3.2:compile (default-compile) on project adddrop: Compilation failure
[ERROR] /Users/jim/Documents/Dev/academic-addDrop-
web/src/main/java/edu/addDrop/web/FormPageController.java:[744,4] error:
cannot access ParameterizedTypeReference
我运行了一个MVN依赖关系树,看到其他jar文件正在使用Spring3.1.1。所以我换了那个,但运气不好。在我的POM中,有弹簧芯:
<properties>
<spring.version>3.1.1.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
我认为这是一个依赖性问题,但无休止的谷歌搜索毫无结果。我想不出这门课应该在哪里
private ArrayList<String> getHarvardOpenSchools()
{
RestTemplate rt = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.set("client_id", "3f36*********");
headers.set("client_secret", "7251********");
String url = "https://mit-cross-registration-v1-early-xreg.cloudhub.io/outgoing/stub/institutions/harvard/schools/xreg/open";
HttpEntity entity = new HttpEntity(headers);
// This is the offending line, 744
rt.exchange(url, HttpMethod.GET, entity, String.class);
ResponseEntity<String> response = rt.getForEntity(url, String.class);
ObjectMapper mapper = new ObjectMapper();
try
{
XregUniversity u = mapper.readValue(response.getBody(), XregUniversity.class);
return u.getSchools();
}
catch(Exception e)
{
return new ArrayList<String>();
}
}
此外,Eclipse发出以下警告:
The type org.springframework.core.ParameterizedTypeReference cannot be resolved. It is indirectly referenced from required .class files
更新:
如果我切换到Spring 4.2.1。RELEASE I随后出现以下编译错误:
error: cannot access LabeledEnum
# 1 楼答案
ParameterizedTypeReference
包含在spring-core
中。从3.2开始,您应该使用更高版本的spring。使用spring 4
或spring 5