2014-12-03 186 views
0

我得到一個NullpointerException但我甚至不明白它怎麼可能。我只是從其他類複製粘貼部分RestTemplate restTemplate = this.restClient.getRestTemplate(),但在這裏我得到一個NullPointerException?!RestClient拋出NullPointerException?

@Component 
public class ShowRestClient implements ShowService{ 

@Autowired 
private RestClient restClient; 
@Override 
public List<ShowDto> getShowsByPerformanceID(int perfID) 
     throws ServiceException { 
    // TODO Auto-generated method stub 
    return null; 
} 
@Override 
public List<ShowDto> findAllShows() throws ServiceException { 

    RestTemplate restTemplate = this.restClient.getRestTemplate();(!!!!! HERE) 
    String url = this.restClient.createServiceUrl("/show/"); 
    HttpEntity<String> entity = new HttpEntity<String>(this.restClient.getHttpHeaders()); 
    List<ShowDto> shows = null; 
    try { 
     ParameterizedTypeReference<List<ShowDto>> ref = new ParameterizedTypeReference<List<ShowDto>>() {}; 
     ResponseEntity<List<ShowDto>> response = restTemplate.exchange(URI.create(url), HttpMethod.GET, entity, ref); 
     shows = response.getBody(); 
    } catch (RestClientException e) { 
     throw new ServiceException("Could not retrieve shows: " + e.getMessage(), e); 
    } 
return shows; 
} 

回答

0

你能分享你的spring配置文件嗎?

你有restter和setter for restClient嗎?

您可以按照以下步驟進行調試: - 1. Autowire其他一些bean,只是爲了檢查ShowRestClient類是否是合適的spring bean。 2.檢查您注入ShowRestClient的類是否是合適的bean。

如果可能,分享堆棧跟蹤,以便我們瞭解正在發生的事情。

+0

「2.檢查您注入的類ShowRestClient是合適的bean「那! :) – 2014-12-03 11:22:00

+0

這會發生一些時候,人們錯誤地使用new運算符創建類的對象,並嘗試在該類中自動裝入或注入依賴。 – Panther 2014-12-04 18:39:56

1

你RESTClient實現似乎null最有可能的,因爲@Autowired沒有工作。我懷疑你的組件不是一個真正的Spring Bean,因爲如果它是,那麼在應用程序啓動過程中你的上下文創建將失敗。確保您已將軟件包包含在軟件包掃描中。

+0

對不起,我完全是一個新手在休息,你是什麼意思與軟件包包括在包掃描? 你能告訴我一些我可以嘗試的步驟嗎? – 2014-12-03 00:47:09

+1

@Akin:你遇到了Spring配置問題,而不是REST問題。閱讀Spring自動裝配和類路徑掃描。 – 2014-12-03 00:48:53

+0

我檢查,但完全是它應該是... – 2014-12-03 02:12:34

相關問題