2015-01-22 6 views
0

Я получаю сообщение об ошибке при вызове функции в java.
Тип возврата недействителен, и я просто вызываю его и вывожу строку внутри.JavaNullPointerException при вызове функции

Вот вызов подслушивания функции:

@RequestMapping(method = RequestMethod.POST) 
public String findDevicesByCriteria(@Valid @ModelAttribute Device device, BindingResult bindingResult, Model uiModel) { 
    if (isCriteriaEmpty(device)) { 
     uiModel.addAttribute("criteriaEmptyWarning", "error_search_criteria_empty"); 
     return ViewConstants.DEVICE_SEARCH_VIEW; 
    } 
    identityService.searchDevices(device.getSerialNumber(), device.getOwner().getSiteName(), device.getIpAdress(), device.getInstallDate(), device.getEndDate()); // the error come from here 

    return ViewConstants.DEVICE_SEARCH_VIEW; 
} 

Прототип в интерфейсе функции подслушивания:

/** 
* Search devices. 
* 
* @param sn the serial number of the device 
* @param site the site of it 
* @param ipAdress the ip adress of it 
* @param installDt the install date of it 
* @param endDt the end date of it 
* @return the list of device 
*/ 
void searchDevices(String sn, String site, String ipAdress, Date installDt, Date EndDt); 

И, наконец, функция, которая вызывает проблемы:

public void searchDevices(String sn, String site, String ipAdress, Date installDt, Date EndDt) { 

    System.out.println("toto"); 

} 

Просим связаться с нами

С уважением

ответ

1

Убедитесь, что ни один из следующих объектов не имеет значения.

identityService 
device 
device.getOwner() 
+0

device.getOwner() вызывает проблему. Спасибо –

1

Проверить, является ли пустой или нет, прежде чем доступа к значениям

if(device != null) 
{ 
    identityService.searchDevices(device.getSerialNumber(), device.getOwner().getSiteName(), device.getIpAdress(), device.getInstallDate(), device.getEndDate()); 
} 
+0

Я сделал это, это не проблема, но я забыл эту полезную проверку. Спасибо –

+0

@ JérômeCampeaux приветствуются. – newuser

0

Любой из identityService или service не инициализирован устройство и, следовательно, является недействительным. Затем вы получаете NullPointerException, когда пытаетесь его использовать.

0

1.Plz. Подтвердите, объявили ли вы и определили компонент для службы идентификации. (Скорее всего, это будет @Autowired в вашем контроллере и определено как bean-компонент в вашем файле контекста SpringBean) и исправьте найденные несоответствия.

  1. Независимо от того, является ли объект устройством нулевым или нет. Если это так, проверьте свои заголовки и тело запроса (что приводит к созданию объекта Device, на который вы ссылаетесь).

Было бы гораздо проще указать проблему, если бы вы могли поделиться всем своим файлом контроллера (откуда функция вызывается и отлаживается в строке, откуда вызывается нулевой указатель).

+0

Привет, да, моя идентификационная служба объявлена, и @Autowired. бонус объявлен. –

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