묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
N+1 select 문제
안녕하세요, 영한님!! Lazy loading일 때 N + 1 개의 쿼리가 발생할 때 N + 1 select 문제라고 하고, Eager loading일 때 N + 1 개의 쿼리가 발생할 때도 N + 1 select 문제라고 하나요? 아니면, Lazy loading 일 때 N + 1 개의 쿼리가 발생하는 경우만 N + 1 select 문제라고 하고, Eager loading 일 때 N + 1개의 쿼리가 발생하는 경우는 N + 1 select 문제라고 하지 않는건가요?? 동욱님 블로그 에서는 Lazy loading만 언급되어있는데 NHN 블로그 에서는 Lazy loading 과 Eager loading 모두 N + 1 select 문제를 해결할 수 없고 fetch join등으로만 해결할 수 있다고 해서 질문드립니다!! Eager loading 일 때 N + 1개의 쿼리가 발생하는 경우는 N + 1 select 문제인가요? 아닌가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring-boot-devtools 설정
안녕하세요. 수업 진행 마지막에 spring-boot-devtools 라이브러리를 추가하면 서버를 재시작 하지않고 컴파일만 해도 된다고 하셔서 추가해볼려고하는데 몇 가지 문제가 있습니다. 구글에서 찾아본 결과 의존성 추가부분이 다르더라구요 1. compile('org.springframework.boot:spring-boot-devtools') 2. implementation 'org.springframework.boot:spring-boot-devtools' 첫번째와 두번째 둘다 해봤는데 아무 반응이 없었습니다. 그리고 Ctrl + Shift + A를 눌러서 Registy를 검색 후 compiler.automake.allow.when.app.running를 체크하라는데 아무리 찾아봐도 compiler.automake.allow.when.app.running이 없네요 ㅠㅠ 답변해주시면 정말 감사하겠습니다..
-
미해결Azure 기초 (AZ-900)
오라클 지원여부
오라클 데이터베이스는 지원하지 않는다고 들었습니다만, 최근에는 가능하게 된것 인지요? (구글링)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
~{...} 단순한 템플릿 고각
안녕하세요. 강의 잘 보고 있습니다. 템플릿 조각 사용 관련해서 궁금한 점이 있는데, pdf 자료에 ~{...}를 사용하는 것이 원칙이지만 템플릿 조각을 사용하는 코드가 단순하면 이 부분을 생략할 수 있다. <-- 라고 쓰여 있는데 여기서 말하는 단순하다의 기준이 뭐일까요?
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
딥러닝 컴퓨터비전 완벽 가이드 강의와 차이
안녕하세요. 1. 딥러닝 컴퓨터비전 완벽 가이드를 먼저 듣고 들어야 하나요? 2. 딥러닝 컴퓨터비전 완벽 가이드와 본 강의는 어떤 차이가 있을까요? 딥러닝 컴퓨터비전 강의도 수강할 예정입니다. 답변해주셔서 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
여러 개의 PersistenceContext와 Lock
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(http://bit.ly/3fX6ygx)을 먼저 확인해주세요. 3. 질문 잘하기 메뉴얼(http://bit.ly/2UfeqCG)을 먼저 읽어주세요. 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 영속성 관리 - 내부 동작 방식 부분 강의를 듣고 lock과 관련하여 의문점이 있어 질문을 남기게 되었습니다. EntityManager로 Entity(entityA)를 조회하고 다른 EntityManager에서도 Entity(entityA)를 조회한 후 setter를 이용해서 두 엔티티를 equal하지 않게 만들면 논리적으로는 같은 엔티티인데 각각의 PersistenceContext에서는 다른 상태가 될 것 같습니다. 이 상황에서 commit을 하게 되면 나중에 commit한 EntityManager의 PersistenceContext 내용이 반영되게 될 것 같습니다. (실제로 하나의 스레드에서 간단히 실험해보니 예상과 같은 결과를 얻었습니다.) Lock과 관련된 처리를 해야 할 것 같은데, 이 부분을 어떤 식으로 처리해야 하는지 질문 드립니다. 감사합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
3 hand shake 관련 질문입니다
클라이언트가 서버에 요청을 보내기 위해서 APP계층에서 메세지를 작성 후 소켓라이브러리를 이용해서 3hand shake로 가상연결 후, tcp/ip계층에서 패킷을 생성해서 요청을 전송하는 것으로 이해했습니다. 궁금한 점은 1. 서버에서 요청을 받았을 때도 마찬가지로 클라이언트와 3 hand shake 를 하고 응답을 보내나요? 2. 서버에서는 3 hand shake를 하지 않는다면 어떻게 가상연결 상태인 것을 알 수 있나요? 3. 서버에서 가상연결 상태인 것을 알고있다면, http는 비연결성이 아닌 건가요? 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
my_topic_users 데이터 중복저장 문제
동일한 데이터가 중복되서 저장이 되네요. 어떤 이유인지 알수 있을까요..? kafka connector는 sink와 source 두개 뿐인 것을 확인하였고 토픽도 my_topic_users한개 존재합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
watchman 설치할 때 오류가 발생합니다
Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)! To rerun under ARM use: arch -arm64 brew install ... To install under x86_64, install Homebrew into /usr/local. 이런 오류가 발생하는데 M1 맥북에서는 설치를 못하는걸까요?
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
손실함수 및 최적화방법 정의 부분 질문드립니다.
안녕하세요~ 1. noise 함수에서 return값 Variable은 어떤용도로 사용되는 코드인가요? 2. test_noise = noise(64) 64값은 임의로 정해주는게 맞나요? 3.학습부분. fake_data = generator(noise(n)).detach() real_data = imgs.to(device) d_loss += train_discriminator(d_optim, real_data, fake_data) fake_data = generator(noise(n)) g_loss += train_generator(g_optim, fake_data) 처음 fake_data에 detach()를 넣어준건 d_loss계산 후 g_loss 계산에 영향을 주지 않기 위해 detach()를 사용하는건가요?
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
질문있습니다
안녕하세요 제로초님. 트랜잭션에서 nest-typeorm폴더를 보니 트랜잭션이 적용이 안되어 있어서 back폴더의 express로 nest와 비교하며 공부하고 있습니다 router.post("/workspaces", isLoggedIn, async (req, res, next) => { const t = await sequelize.transaction(); try { const exWorkspace = await Workspace.findOne({ where: { url: req.body.url }, }); if (exWorkspace) { await t.rollback(); return res.status(404).send("사용중인 워크스페이스 URL입니다."); } const workspace = await Workspace.create( { name: req.body.workspace, url: req.body.url, OwnerId: req.user.id, }, { transaction: t, } ); await workspace.addMembers(req.user.id, { transaction: t }); const channel = await Channel.create( { name: "일반", WorkspaceId: workspace.id, }, { transaction: t, } ); await channel.addMembers(req.user.id, { transaction: t }); await t.commit(); return res.json(workspace); } catch (error) { await t.rollback(); next(error); } }); 1. 제가 이해한게 맞는지 헷갈립니당. 각각 네개의 Workspace.create, workspace.addMembers, Channel.create, channel.addMembers 에 두번째 인수로 transaction:t를 넣어주고 있는데 이는 이 네개중 하나라도 에러가 나면 모두 rollback되어서 4개 전부다 초기화 됩니다. 4개다 성공하면 commit되어 데이터베이스에 성공적으로 접근됩니다. 제가 이해한것이 맞나요?.. 2. const workspace = await Workspace.create( { name: req.body.workspace, url: req.body.url, OwnerId: req.user.id, }, { transaction: t, } ); await workspace.addMembers(req.user.id, { transaction: t }); const channel = await Channel.create({ name: "일반", WorkspaceId: workspace.id, }); await channel.addMembers(req.user.id); 그런데 만약 Workspace.create, workspace.addMembers,에만 두번째 인수로 transaction:t를 넣어주고 Channel.create, channel.addMembers에는 transaction:t를 빼주면 Channel.create, channel.addMembers에는 transaction에 적용을 받지는 않지만 정상적으로 디비에 저장되어야 하지 않나요?. 실제로 실험해보니 저장이 안되네요. 왜 그런지 궁금합니다 3. if (exWorkspace) { await t.rollback(); return res.status(404).send("사용중인 워크스페이스 URL입니다."); } 여기서 t.rollback이 왜 필요한지 궁금합니다. 이 코드를 기준으로 위에 코드에서 workspace를 find하는 코드이고 커밋이나 transaction:t 를 해준곳이 없고 , 또한 어차피 return되면 초기화일텐데 여기서 t.rollback()을 해주는게 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
json load 시 stack overflow 발생 관련 문의입니다.
처음에는 질문에 있는 사람들처럼 환경에 따른 문제인가 하고 여러 방면에 대해 확인해봤는데 문제가 이상한 곳에서 해결이 되어 문의 드립니다. 다음과 같이 Managers 에서 데이터매니저를 init 해주면 스택오버플로우가 발생하는데 플레이어 컨트롤에서 매니져를 불러와 init을 시키면 해당 문제가 발생하지 않네요. 코드를 봐도 정확히 어떤 지점이 문제가 되는 건지 가늠이 잡히지 않아 문의 드립니다.
-
미해결웹 게임을 만들며 배우는 React
cant' resolve object-assign
2-5를 따라 구현하다가 npx webpack을 실행하면 다음과 같은 에러가 발생합니다. ERROR in ./node_modules/react-dom/cjs/react-dom.development.js Module not found: Error: Can't resolve 'object-assign' in 'S:\study\react-webgame\lecture\node_modules\react-dom\cjs' @ ./node_modules/react-dom/cjs/react-dom.development.js 17:14-38 @ ./node_modules/react-dom/index.js @ ./client.jsx @ multi ./client ERROR in ./node_modules/react/cjs/react.development.js Module not found: Error: Can't resolve 'object-assign' in 'S:\study\react-webgame\lecture\node_modules\react\cjs' @ ./node_modules/react/cjs/react.development.js 16:14-38 @ ./node_modules/react/index.js @ ./client.jsx @ multi ./client ERROR in ./node_modules/react-dom/cjs/react-dom.development.js Module not found: Error: Can't resolve 'scheduler/tracing' in 'S:\study\react-webgame\lecture\node_modules\react-dom\cjs' @ ./node_modules/react-dom/cjs/react-dom.development.js 19:14-42 @ ./node_modules/react-dom/index.js @ ./client.jsx @ multi ./client 그래서 object-assign을 설치해봐도 에러는 같습니다.
-
미해결3DS MAX 입문강좌 (입문부터 자동차 예제까지)
3d max에 대해 궁금한 질문이 있습니다
안녕하세요 목마하임님! 3d max를 하면서 궁금한 질문이 있습니다 1. 3d max 가 영화쪽에서도 쓰일수 있는지 영화 뿐 만 아니라 영상쪽에서도 쓸 수 있는지 궁금합니다 2. 요즘 3d max 를 많이 사용하는지 워낙 c4d라던지 여러 프로그램들이 나와서요 ㅠ 3. 3d max 랑 마야랑 서로 내용물(?) 이 비슷한지 궁금해서 질문드려요~
-
미해결Vue로 Nodebird SNS 만들기
이미지 업로드가 안돼서 질문드립니다
5-4 강의 마지막에 제로초님은 설정한대로 사진 2개 3개 업로드가 되는데 errors: [ ValidationErrorItem { message: 'Image.email cannot be null', type: 'notNull Violation', path: 'email', value: null, origin: 'CORE', instance: [Image], validatorKey: 'is_null', validatorName: null, validatorArgs: [] } ] } SequelizeValidationError: notNull Violation: Image.email cannot be null at InstanceValidator._validate (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\instance-validator.js:78:13) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async InstanceValidator._validateAndRunHooks (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\instance-validator.js:111:7) at async InstanceValidator.validate (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\instance-validator.js:93:12) at async model.save (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\model.js:3890:7) at async Function.create (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\model.js:2207:12) at async Promise.all (index 0) at async C:\Users\com\vue강좌\vuesns\ch1\back\routes\post.js:46:32 POST /post 500 17.596 ms - 1119 이러한 업로드가 떠서 더이상 진행이 되지 않아 질문드려요 ch1\back\routes\post.js:46:32 이부분에 오류인거 같아 확인해보았는데 if(req.body.image) { if(Array.isArray(req.body.image)) { const images = await Promise.all(req.body.image.map((image) => { return db.Image.create({ src: image, PostId: newPost.id }) })) } else { const image = await db.Image.create({ src: req.body.image, PostId: newPost.id}) } } 정확히는 const images 의 await바로 앞입니다. 어떤부분이 잘못된지 모르겠어 제로초님의 코드랑 비교해봤는데 답이 나오지 않아 질문드려요 ㅜ
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
raise를 이용하여 Error를 발생시킬경우 as를 통해 Error가 발생한 부분을 출력 할 수 없는건가요?
항상 친절한 답변 감사합니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
에러메시지가 타임리프에 출력이 안됍니다..
안녕하세요 강사님, 정말 좋은강의 항상 잘 듣고 있습니다. 저가 BindingResult에 관련해서 따로 실습을 진행하다가, html에 에러가 출력되지 않아 애를먹고있어 부득이하게 질문을 올리게 돼었습니다 .. ㅠㅠ 컨트롤러에 BindingResult를 log에 출력해봐도 정상적으로 출력되고, 리다이렉션도 되는것을 보면 컨트롤러부분은 아닌것 같고, 타임리프쪽의 문제인것 같은데 도저히 해결방법을 모르겠어서 질문드립니다.. ... 강의 항상 잘 듣고 배우고있습니다. 감사합니다 순서대로 컨트롤러, messeage.properties, html입니다. @PostMapping public String joinUser(userInfo userinfo, mangerInfo mangerinfo, BindingResult bindingResult, RedirectAttributes redirectAttributes,Model model){ log.info("userinfo.getId()={}",userinfo.getId()); log.info("userinfo.getPassword()={}",userinfo.getPassword()); log.info("userinfo.getEmail()={}",userinfo.getEmail()); if(userinfo.getId().isEmpty()){ bindingResult.addError(new FieldError("userinfo", "id", userinfo.getId(), false, new String[]{"login.id"}, null, null)); } if(userinfo.getPassword()==null){ bindingResult.addError(new FieldError("userinfo","password",userinfo.getPassword(),false,new String[]{"login.password"},new Object[]{45},null)); } if(userinfo.getEmail().isEmpty()){ bindingResult.addError(new FieldError("userinfo","email",userinfo.getEmail(),false,new String[]{"login.email"},null,null)); } if(bindingResult.hasErrors()){ model.addAttribute("errors",bindingResult); log.info("errors={}",bindingResult); return "Join/signUp"; }else { if (mangerinfo.getNumber() == null) { joinService.join(userinfo.getEmail(), userinfo.getId(), userinfo.getPassword(), null); userInfo joinResult = joinService.myInfo(userinfo.getId()); redirectAttributes.addAttribute("id", joinResult.getId()); redirectAttributes.addAttribute("email", joinResult.getEmail()); } else { joinService.join(userinfo.getEmail(), userinfo.getId(), userinfo.getPassword(), mangerinfo.getNumber()); userInfo mangerInfo = joinService.myInfo(userinfo.getId()); redirectAttributes.addAttribute("id", mangerInfo.getId()); redirectAttributes.addAttribute("email", mangerInfo.getId()); } return "redirect:/Join/{id}"; } } login.id=id는 필수로 작성해야 합니다. login.password=비밀번호는 필수로 작성해야 합니다. 또한 최대길이는 {0} 입니다. login.email=이메일은 필수로 작성해야 합니다. <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>sign up</title> <link rel="stylesheet" href="/css/signUp.css"> <link rel="stylesheet" th:href="@{/css/signUp.css}"> <style> .field-error { border-color: #dc3545; color: #dc3545; } </style> </head> <body> <form th:action th:object="${userInfo}" method="post" name="form"> <div id="join"> <h1>회원가입</h1> <table> <tr> <td>ID</td> <td> <label> <input type="text" th:name="id" th:field="*{id}" th:errorclass="field-error"> <div class="field-error" th:field="*{id}" th:if="${#fields.hasErrors('id')}" th:errors="*{id}"> id 오류 </div> </label> </td> </tr> <tr> <td>비밀번호</td> <td> <label> <input type="password" th:name="password" th:field="*{password}" th:errorclass="field-error"> <div class="field-error" th:errors="*{password}" > password 오류 </div> </label> </td> </tr> <tr> <td>비밀번호 확인</td> <td><label> <input type="password" th:field="*{password}"> </label></td> </tr> <tr> <td>관리자입니까?</td> <td> <label> <input type="checkbox" name="checkbutton" onclick="f_check()"> </label> </td> </tr> <tr> <td>관리자 번호</td> <td> <label> <input type="text" name="textbox"> </label> </td> </tr> <tr> <td>e-mail</td> <td> <label> <input type="text" name="email" th:field="*{email}" th:errorclass="field-error"> <div class="field-error" th:errors="*{email}" > email 오류 </div> </label> </td> </tr> <tr> <td>e-mail 인증번호</td> <td><label> <input type="text" name="emailCheck" > </label></td> </tr> <tr> <td colspan="2" class="answer"> <input type="button" value="나가기"> <input type="submit" value="가입하기"> </td> </tr> </table> <script src="../js/signUp.js" charset="utf-8"></script> </div> </form> </body> </html>
-
해결됨스스로 구축하는 AWS 클라우드 인프라 - 기본편
질문
안녕하세요! 강의 잘 듣고 있습니다. 앞선 구조 강의에서 그림상 RDS를 10.0.5.0/24 subnet에 배치시키고 있는데 현재 강의 상에서는 rds를 해당 subnet으로 배치시키는 과정이 없는것 같습니다. 생성한 RDS를 확인해보니 서브넷 ID로 할당된 것은 확인할 수 없고 서브넷 그룹과 서브넷 그룹에 포함된 서브넷만 보여주는 것을 확인했습니다. 결론은 RDS는 앞선 구조 강의 그림처럼 서브넷 ID 10.0.5.0으로 할당이 불가능하고 통신이 가능한 서브넷 그룹을 선택하는것인 것 같은데 제가 이해한게 맞나요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
#5 multer로 노드 서버에 비디오 저장하기.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. ㅇ- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 정말 재밌게 듣고있습니다. 5강에서 비디오 업로드시 오류가 있어. 해결방법을 질문드립니다. github 주소입니다..: https://github.com/jcw-logan/youtubeapp
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
BookForm @NotEmpty관련 질문
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] memberController 부분은 @NotEmpty가 잘 동작 하였고 itemController 에서 item을 생성할 때에도 member와 동일하게 @Valid 체크를 해주려고 했습니다. 그런데 오류가 발생하는데 어느부분에서 문제인지 잘 모르겠습니다 ㅠ Field error in object 'bookForm' on field 'name': rejected value []; codes [NotBlank.bookForm.name,NotBlank.name,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [bookForm.name,name]; arguments []; default message [name]]; default message [공백이면 안됩니다.] 2021-08-24 16:08:30.870 ERROR 5072 --- [nio-8080-exec-9] org.thymeleaf.TemplateEngine : [THYMELEAF][http-nio-8080-exec-9] Exception processing template "items/createItemForm": An error happened during template parsing (template: "class path resource [templates/items/createItemForm.html]") org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/items/createItemForm.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1393) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1138) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1077) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.4.jar:5.3.4] at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.43.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.4.jar:5.3.4] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.43.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.4.jar:5.3.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.4.jar:5.3.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.4.jar:5.3.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.4.jar:5.3.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.4.jar:5.3.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.4.jar:5.3.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:887) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "#fields.hasErrors('name')" (template: "items/createItemForm" - line 17, col 20) at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupParser.parse(MarkupParser.java:257) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] ... 48 common frames omitted Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "#fields.hasErrors('name')" (template: "items/createItemForm" - line 17, col 20) at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:292) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:166) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.ConditionalExpression.executeConditional(ConditionalExpression.java:209) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.ComplexExpression.executeComplex(ComplexExpression.java:77) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:112) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:144) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleStandaloneElement(ProcessorTemplateHandler.java:918) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleStandaloneElementEnd(TemplateHandlerAdapterMarkupHandler.java:260) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleStandaloneElementEnd(InlinedOutputExpressionMarkupHandler.java:256) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleStandaloneElementEnd(OutputExpressionInlinePreProcessorHandler.java:169) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleStandaloneElementEnd(InlinedOutputExpressionMarkupHandler.java:104) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.attoparser.HtmlVoidElement.handleOpenElementEnd(HtmlVoidElement.java:92) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.HtmlMarkupHandler.handleOpenElementEnd(HtmlMarkupHandler.java:297) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupEventProcessorHandler.handleOpenElementEnd(MarkupEventProcessorHandler.java:402) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.ParsingElementMarkupUtil.parseOpenElement(ParsingElementMarkupUtil.java:159) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:710) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] ... 50 common frames omitted Caused by: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'form' available as request attribute at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:153) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.support.RequestContext.getBindStatus(RequestContext.java:903) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.thymeleaf.spring5.context.webmvc.SpringWebMvcThymeleafRequestContext.getBindStatus(SpringWebMvcThymeleafRequestContext.java:227) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:306) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.getBindStatus(FieldUtils.java:253) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.getBindStatus(FieldUtils.java:227) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.checkErrors(FieldUtils.java:212) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.hasErrors(FieldUtils.java:71) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.expression.Fields.hasErrors(Fields.java:58) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at jdk.internal.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:129) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:112) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.MethodReference.access$000(MethodReference.java:55) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.MethodReference$MethodValueRef.getValue(MethodReference.java:387) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:92) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:112) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:337) ~[spring-expression-5.3.4.jar:5.3.4] at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:265) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] ... 73 common frames omitted 2021-08-24 16:08:30.871 ERROR 5072 --- [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/items/createItemForm.html]")] with root cause java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'form' available as request attribute at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:153) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.support.RequestContext.getBindStatus(RequestContext.java:903) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.thymeleaf.spring5.context.webmvc.SpringWebMvcThymeleafRequestContext.getBindStatus(SpringWebMvcThymeleafRequestContext.java:227) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:306) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.getBindStatus(FieldUtils.java:253) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.getBindStatus(FieldUtils.java:227) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.checkErrors(FieldUtils.java:212) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.util.FieldUtils.hasErrors(FieldUtils.java:71) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.expression.Fields.hasErrors(Fields.java:58) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at jdk.internal.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:129) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:112) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.MethodReference.access$000(MethodReference.java:55) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.MethodReference$MethodValueRef.getValue(MethodReference.java:387) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:92) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:112) ~[spring-expression-5.3.4.jar:5.3.4] at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:337) ~[spring-expression-5.3.4.jar:5.3.4] at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:265) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:166) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.ConditionalExpression.executeConditional(ConditionalExpression.java:209) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.ComplexExpression.executeComplex(ComplexExpression.java:77) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:112) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:144) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleStandaloneElement(ProcessorTemplateHandler.java:918) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleStandaloneElementEnd(TemplateHandlerAdapterMarkupHandler.java:260) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleStandaloneElementEnd(InlinedOutputExpressionMarkupHandler.java:256) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleStandaloneElementEnd(OutputExpressionInlinePreProcessorHandler.java:169) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleStandaloneElementEnd(InlinedOutputExpressionMarkupHandler.java:104) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.attoparser.HtmlVoidElement.handleOpenElementEnd(HtmlVoidElement.java:92) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.HtmlMarkupHandler.handleOpenElementEnd(HtmlMarkupHandler.java:297) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupEventProcessorHandler.handleOpenElementEnd(MarkupEventProcessorHandler.java:402) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.ParsingElementMarkupUtil.parseOpenElement(ParsingElementMarkupUtil.java:159) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:710) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.attoparser.MarkupParser.parse(MarkupParser.java:257) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1393) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1138) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1077) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.4.jar:5.3.4] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.4.jar:5.3.4] at javax.servlet.http.HttpServlet.service(HttpServlet.java:652) ~[tomcat-embed-core-9.0.43.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.4.jar:5.3.4] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.43.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.4.jar:5.3.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.4.jar:5.3.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.4.jar:5.3.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.4.jar:5.3.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.4.jar:5.3.4] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.4.jar:5.3.4] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:887) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]