Я пишу этот код, чтобы просто сохранить новые данные в mySql db, создать класс, репозиторий и главный контроллер, он действительно работает для одного класса, но не для этого, оцените некоторые указатели, поскольку я действительно не понимаю, почему нулевой указатель:
Код: главный контроллер:
@GetMapping(path = "/addExchange")
public @ResponseBody String addNewExchange (@RequestParam String exchange)
{
//check1
System.out.println("creating Exchange constructor");
Exchange e = new Exchange();
//check 2
System.out.println("created exchange constructor, " + exchange);
e.setE_name(exchange);
//check 3
System.out.println("Exhange name is, " + e.getE_name());
//check 4
System.out.println(e);
exchangeRepository.save(e);
return "Saved Exchange";
}
Ошибка вывода из консоли Eclipse: мои проверки ниже показывают, что объект выбран из сопоставления: - создание конструктора Exchange - созданный конструктор обмена, оранжевый - имя участника, оранжевый - обмен [idexchange = 0, e_name = orange]
2018-05-21 15: 59: 43.528 ОШИБКА 5118 --- [nio-8080-exec-4] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service() для сервлета [dispatcherServlet] в контексте с path [] выбрал исключение [Ошибка обработки запроса; вложенное исключение - это java.lang.NullPointerException] с первопричиной
java.lang.NullPointerException: null на com.instantmoney.MoneyServices.MainController.addNewExchange(MainController.java:47) ~ [classes/: na]
Репозиторий Exchange:
public interface ExchangeRepository extends CrudRepository<Exchange, Long> {
}
Класс обмена
@Entity
public class Exchange {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
private int idexchange;
private String e_name;
public Exchange() {}
//Геттеры и сеттеры
Curl
http://localhost:8080/moneyservice/addExchange?exchange=orange
Попробуй это
@Controller
public class ExchangeController {
@RequestMapping(path = "/addExchange", method = RequestMethod.POST)
public @ResponseBody String addNewExchange (@RequestParam String exchange)
{
if (exchange != null ) {
Exchange e = new Exchange();
e.setE_name(exchange);
exchangeRepository.save(e);
return "Saved Exchange";
} else {
return new BadRequestException("exchange name can not be null!");
}
}
@Autowired
public ExchangeController(ExchangeRepository exchangeRepository) {
this.exchangeRepository = exchangeRepository;
}
private ExchangeRepository exchangeRepository;
}
exchangeRepository
имеет значение null, не могли бы вы добавить кодMainController
?