Khi test method PUT thì bị lỗi thiếu tham số id, vì trong code, hàm cập nhật (PUT method) sử dụng đầu vào là @PathVariable(value = "id") nên chỗ annotation
@RequestMapping(value = "/contact/", method = RequestMethod.PUT) phải sửa thành @RequestMapping(value = "/contact/{id}", method = RequestMethod.PUT) , value như hàm lấy một contact thì mới chạy được. Cách khác các bạn có thể sửa t@PathVariable(value = "id") thành @RequestParam(value = "id"). Sau đó khi test các bạn chọn tab params và thêm entry có key là "id" và value là "<id contact bạn muốn sửa>" lúc đó path sẽ dạng như thế này: "api/contact/?id=7". Một cách nữa là bỏ tham số đầu vào id nhưng khi nhận một contact từ client dạng body trong đó có thể nhận thộc tính id thì ta sẽ lấy id đó để nhận diện được là sửa contact nào như vậy code bên trong hàm method PUT sẽ cần lấy id từ cái body ra (thêm mới 1 dòng: "long id = contactForm.getId();" sau đó sửa dòng "Contact contact = contactService.getOne(contactId);" thành "Contact contact = contactService.getOne(id);" sẽ chạy được.
Các method còn lại thì làm theo hướng dẫn video mình để link ở trên thì vẫn chạy bình thường.
bạn có thể chọn mount tất cả ở docker-compose nhưng như thế thì trong container của bạn sẽ nhiều thứ, nặng, ko cần thiết. Thay vào đó ta nên linh hoạt, các thành phần nào cần thiết để chạy được appp thì nên để ở Dockerfile với COPY/ADDD (source code chẳng hạn), còn các thành phần mà bạn muốn giữ/lưu lại (persist) kể cả khi container bị khởi động lại thì ta cho vào volume (ví dụ: ảnh, file,....)
THẢO LUẬN
không chạy được @_@
Các bạn có thể xem hướng dẫn test các phương thức còn lại ở nguồn dưới: https://www.youtube.com/watch?v=fsWEqTa_MGg
Lưu ý:
Khi test method POST thì phải sửa annotation @GeneratedValue(strategy=GenerationType.AUTO) thành @GeneratedValue(strategy = GenerationType.IDENTITY) link tham khảo fix (https://stackoverflow.com/questions/49813666/table-dbname-hibernate-sequence-doesnt-exist)
Khi test method PUT thì bị lỗi thiếu tham số id, vì trong code, hàm cập nhật (PUT method) sử dụng đầu vào là @PathVariable(value = "id") nên chỗ annotation @RequestMapping(value = "/contact/", method = RequestMethod.PUT) phải sửa thành @RequestMapping(value = "/contact/{id}", method = RequestMethod.PUT) , value như hàm lấy một contact thì mới chạy được. Cách khác các bạn có thể sửa t@PathVariable(value = "id") thành @RequestParam(value = "id"). Sau đó khi test các bạn chọn tab params và thêm entry có key là "id" và value là "<id contact bạn muốn sửa>" lúc đó path sẽ dạng như thế này: "api/contact/?id=7". Một cách nữa là bỏ tham số đầu vào id nhưng khi nhận một contact từ client dạng body trong đó có thể nhận thộc tính id thì ta sẽ lấy id đó để nhận diện được là sửa contact nào như vậy code bên trong hàm method PUT sẽ cần lấy id từ cái body ra (thêm mới 1 dòng: "long id = contactForm.getId();" sau đó sửa dòng "Contact contact = contactService.getOne(contactId);" thành "Contact contact = contactService.getOne(id);" sẽ chạy được.
Các method còn lại thì làm theo hướng dẫn video mình để link ở trên thì vẫn chạy bình thường.
Chúc các bạn code vui vẻ.
thanks
@5ting4U nó tuỳ nhé bạn,
bạn có thể chọn mount tất cả ở docker-compose nhưng như thế thì trong container của bạn sẽ nhiều thứ, nặng, ko cần thiết. Thay vào đó ta nên linh hoạt, các thành phần nào cần thiết để chạy được appp thì nên để ở Dockerfile với COPY/ADDD (source code chẳng hạn), còn các thành phần mà bạn muốn giữ/lưu lại (persist) kể cả khi container bị khởi động lại thì ta cho vào volume (ví dụ: ảnh, file,....)
Mỗi tội anh viết sai chính tả rồi anh ơi, Docker chứ không phải là Doker a nhé!
@trainee Bạn chú ý trường hợp ví dụ như bạn search là CON BÒ thì kết quả là CON BỌ nó vẫn ra nhé.
Bài viết xịn quá ạ, mong anh ra nhiều bài viết hay và bổ ích như vậy trong tương lai. 🤤🥲🥲🥲🫠🫠
cảm ơn anh nhé
cám ơn bạn nhiều lắm, đúng cái mình cần đây rồi🙂
Thank E nhiều, bài viết quá hay và tuyệt vời
sao mình push lên heroku versoin 5.8 lần này thỉ bị lỗi này
,mấy lần trước up lên không bị
@thevan96 Yup! Mình thường hay dùng WezTerm, nhanh mượt, config vất vả hơn chút bù lại render ổn hơn HyperJS
GG dịch còn k buồn xóa TA đi
@Anhkolamgidauanhthe không có gì bác ơi.
Ai cũng từng là những người mới =))) Ngu và ngơ ngác :3 Đọc bài của bác nhớ mình hồi mới ra trường
mình làm như các bước nhưng khi vào trang admin thì nó không tự động add boostrap cho mình
Bài viết hay và đầy đủ quá. Cảm ơn bạn đã chia sẻ.
Chúc một ngày làm việc tốt lành 👍️
Cảm ơn bạn.
Quarkus thi truong vn hau nhu khong thay nhieu nhi
@long.tranduy Cảm ơn bạn nhiều nhé 👏