2014-12-03 3 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

Не могли бы вы поделиться своим конфигурационным файлом весны.

У вас есть геттер и сеттер для отдыха?

Вы можете выполнить следующие шаги для отладки: - 1. Autowire какой-либо другой компонент, просто чтобы проверить класс ShowRestClient - это правильный весенний боб. 2. Проверьте, является ли класс, в который вы вводили ShowRestClient, правильный компонент.

Поделитесь стеклой, если возможно, чтобы мы поняли, что происходит.

+0

"2. Проверьте, был ли класс, в который вы ввели ShowRestClient - это правильный боб "! :) –

+0

Это случается несколько раз, люди по ошибке создают объект класса с использованием нового оператора и пытаются автоувеличивать или вводить зависимости в этом классе. – Panther

1

Ваш RestClient, кажется, null скорее всего потому, что @Autowired не работает. Я подозреваю, что ваш компонент не является фактическим Spring Bean, потому что если бы это было, и тогда ваше создание контекста не удавалось при запуске приложения. Убедитесь, что пакет включен в пакетное сканирование.

+0

Извините, я полностью новичок в отдыхе, что вы имеете в виду с пакетом, включенным в сканирование пакетов? Не могли бы вы предложить мне несколько шагов, которые я могу попробовать? –

+1

@Akin: Вы сталкиваетесь с проблемами конфигурации Spring, а не с проблемами REST. Прочитайте сканирование пружин и сканирование классов. –

+0

Я проверял, но <контекст: компонент-сканирование base-package = "at.ac.tuwien.inso.ticketline.client" /> полностью, как это должно быть ... –

Смежные вопросы