2017-01-26 4 views
0

положение:Невозможно вызвать любой метод вне моего контроллера в Spring

  • Использование Spring MVC Я подскажете пользователя, на мой взгляд, чтобы ввести информацию в форму.
  • Я связываю эту информацию с объектом формы (как обычно).
  • Я успешно возвращаю данные на свой контроллер (подтвержденный) через свалку журнала.

Проблема:

  • Сейчас я нахожусь в контроллер со всеми данными пользователя, введенных в форму (привязывается к форме объекта).
  • Я беру тот же объект с данными в нем, и я пытаюсь передать его методу класса сервиса, чтобы использовать данные так, как мне это нужно.

Проблема в том, что как только (как только) мой контроллер вызовет метод службы, он выдает исключение. Он даже не достигает «log.info» (который является первой строкой кода в этом методе).

Это должно быть абсолютно эффективным, и я очень обратил внимание на то, почему это не так. Это похоже на очень простой вопрос. т. е. вернуть данные моему контроллеру, использовать эти данные при вызове метода услуги).

CONTROLLER

@RequestMapping(value = "/register", method = RequestMethod.POST) 
public String registerAccount(@ModelAttribute User user, Locale locale, 
Model model) { 
    String theView = ""; 
    try{ 
     logger.info("User submitted Registration Form"); 

     user.setPaidStatus("ACTIVE"); 
     user.setUserRole("SUBSCRIBER"); 
     logger.info(user.toString()); //Proving all the data is available. 

     userService.createNewUser(user); //This is the call to my service 
    //method. As soon as it reaches it it exceptions out right away.   
     //userDao.createNewUser(userDto); //just to see if it does the same 
              //thing elsewhere - (it does) 

     model.addAttribute("command", new User()); 
     theView = "login"; 

    } catch(SaveMyFavsException se){ 
     logger.info(se.getCmdCode() + ", Message: " + se.getCmdMsg()); 
     model.addAttribute("command", new User()); 
     model.addAttribute("error", se.getCmdCode() + ", Message: " + 
se.getCmdMsg()); 
     return "register"; 
    } catch(Exception e){ 
     logger.info(e.getLocalizedMessage()); 
     model.addAttribute("command", new User()); 
     model.addAttribute("error", e.getLocalizedMessage()); 
     return "register"; 
    } 

    return theView; 
} 

SERVICE CLASS (см createNewUser())

@Component 
public class UserService implements UserServiceInterface{ 

    @Autowired 
    UserDaoInterface userDao; 

    private static final Logger logger = LoggerFactory.getLogger(UserService.class); 


    public void createNewUser(User user){ 
     int result = 0; 
     try{ 
      //FAILS BEFORE MAKING IT HERE (automatically ends up in the second Catch block for Exception with no message) 
      logger.info("Entered createNewUser() service");  
      logger.info("User ID: " + user.getUserId());  
      result = userDao.createNewUser(user);             
      logger.info("New User DAO Complete - Rows Inserted: " + result); 

     } catch(SaveMyFavsException se){ 
      throw new SaveMyFavsException(se.getCmdCode(), se.getCmdMsg()); 

     } catch(Exception e){ 
      logger.info("General Exception occurred during service to create new user... Trace: " + e.getLocalizedMessage()); 
      throw new SaveMyFavsException(2000015, "General Exception occurred during service to create new user... Trace: " + e.getLocalizedMessage()); 
     } 
    } 
+1

** Пожалуйста, будьте как можно более подробными в своем вопросе **, как сообщать нам, что такое исключение –

+0

Добро пожаловать в переполнение стека! Сначала вы можете взять тур (http://stackoverflow.com/tour) и узнать [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и создать [ Minimal, Complete и Verifiable] (http://stackoverflow.com/help/mcve). Это облегчает нам помощь. –

+0

Если вы смотрите на мой пост - объект пользователя имеет несколько свойств: - идентификатор пользователя - ПгвЬЫате - LastName - и т.д .... Все они населены (для свойств даты у меня есть там кроме), которые не предназначены для заполнения здесь. Они используются для извлечения данных из базы данных. Я попытался удалить их, и это не изменило ситуацию. –

ответ

0

Вы не видите полное сообщение об ошибке, потому что вы есть полный трассировки стека. Измените регистратор на: logger.info («Общее исключение произошло во время службы для создания нового пользователя»., E);

+0

Как я могу использовать полную трассировку стека? e.getLocalizedMessage() - это значение, переданное регистратору. Насколько я могу судить, сообщения нет. Позвольте мне проверить это снова. Если это так, я выкину его. –

+0

Я только что перепроверил его, и если бы появилось сообщение, оно обязательно будет отображаться. Можете ли вы рассказать о своем посте? –

0

Просьба поделиться кодом, который вводит userService в контроллер. Это, похоже, проблема с инъекцией бобов.

+0

Ниже я включил его ...DI работает - потому что я получаю сообщение об ошибке «из» класса сервиса, означающее, что он обращается к методу. Возможно, я не думаю о том, что вы могли бы пролить свет. \t <боб ID = "UserService" класс = "com.savemyfavs.service.UserService"> \t @Autowired \t UserServiceInterface UserService; –

+0

Ниже я включил его ... DI работает - потому что я получаю сообщение об ошибке «из» класса сервиса, означающее, что он обращается к методу. Возможно, я не думаю о том, что вы могли бы пролить свет. ( \t <боб ID = "UserService" класс = "com.savemyfavs.service.UserService"> \t @Autowired \t UserServiceInterface UserService; ) –

+0

Как вставить фрагменты кода в комментариях? !! –

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

  • Нет связанных вопросов^_^