Spring/๐ ์๋ฌ ๊ธฐ๋ก
๐ ์๋ฌ ์ค๋ช
class java.util.LinkedHashMap cannot be cast to class com.XXXX. XXXX.app.interfaces.devices.service.dto.StatusDto ๐ java.util.LinkedHashMap์ StatusDto ๊ฐ์ฒด๋ก ๊ฐ์ ๋ก ์บ์คํ
ํ๋ ค ํ ๋ ๋ฐ์ํ๋ ClassException์ด๋ค.Java์์ ํ์
๋ถ์ผ์น๋ก ์ธํด ๋ฐ์ํ๋๊ฑด๋ฐ, ์ ์ด๋ฌํ ์ํฉ์ด ๋ฐ์ํ๋์ง ์์๋ณด์... ์๋ฌ๊ฐ ๋ฐ์ํ๋ ์ํฉ๐ถ ์์ ์ ์ฝ๋ @Override public Flux getAll() { return deviceRepository.findByXXXX() .switchIfEmpty(Mono.error(n..
Spring/๐ ์๋ฌ ๊ธฐ๋ก
์ด๋ค ์ํฉ์ธ์ง...์ธ๋ถ API๋ฅผ ํธ์ถํ๊ณ ์๋ต ๊ฐ์ ๋ฐ์ ๋ ๋ฐ์ํ ๋ฌธ์ ์ด๋ค.Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.core.codec.DecodingException: JSON decoding error: Unexpected character (''' (code 39)): was expecting double-quote to start field name] with root cause ํด์ํด๋ณด๋ฉด ์๋ต ๊ฒฐ๊ณผ๊ฐ single quotes์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ก ํ์ฑํ์ง ๋ชปํ๋ค๋ ๊ฒ ๊ฐ๋ค. ์ฐธ๊ณ ๋ก ๋ด๊ฐ ์์ฑ..
Spring/๐ ์๋ฌ ๊ธฐ๋ก
DB์ ์๋ ๋ฐ์ดํฐ๋ค์ ๋ชจ์กฐ๋ฆฌ ์ญ์ ํ๊ณ ๋ค์ save ํด์ผํ๋ค.์ฒ์์๋ deleteAll()๋ก ์ญ์ ํ ํ saveAll()ํ๋ ๊ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค.ํ์ง๋ง ์คํ์์ผ๋ณด๋ ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. delete๊ฐ ๋์ง ์๊ณ save๋ฅผ ํ๋ ค๊ณ ํ๋ ์ค๋ณต๋ ํค๊ฐ ์๋ค๊ณ ๋์ค๋ ๋ฏํ๋ค. deleteAll()์ฃ๋ค select๋ง ํ๊ณ delete๋ ํ์ง ์์๋ค.๊ฒฐ๊ตญ delete๋ฅผ ํ์ง ์๊ณ saveAll()์ ๋ง๋ insertํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ค ๋ณด๋ ์ค๋ณต๋ ํค๊ฐ ์๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. ๐น deleteAll() deleteAll() ๋ฉ์๋๋ฅผ ๋ค์ด๊ฐ์ ํ์ธํด๋ณด๋ findAll()๋ก ๋ชจ๋ ์ํฐํฐ๋ฅผ ์ฐพ๊ณ ํ๋์ฉ ์ญ์ ํ๋ค. ๊ฐ ์ํฐํฐ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ญ์ ํ๊ณ , ํธ๋์ญ์
์ด commit๋ ๋๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ..
Spring/๐ ์๋ฌ ๊ธฐ๋ก
๋ฐฐํฌํ๊ณ ์ ๋ฌธ์ ๊ฐ ์์ด๋ณด์์ผ๋, ์๋ก๊ณ ์นจํ ๋๋ง๋ค 404 ์๋ฌ๊ฐ ๋ฌ๋ค. ๋ก์ปฌ์์๋ ์ ์์ ์ผ๋ก ์๋ํ๋ ๊ฒ ๊ฐ์๋ฐ.. ๊ฒ์ํด๋ณด๋ฉด ์ฌ๋ฌ ์ฌ๋๋ค์ด ํ ๋ฒ์ฏค์ ๊ฒช๊ณ ์ง๋๊ฐ ์๋ฌ์ธ ๊ฒ ๊ฐ๋ค. ๐ ์๋ฌ ํ์
ํ๊ธฐ ๋ฆฌ์กํธ์ ํน์ฑ์ ํ์
ํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์๋ค. ์ฌ์ฉ์๊ฐ ์ฒ์ ์ ์ ํ ์๋ฒ์ ์์ฒญํ ์ index.html์ ๋ณด๋ด์ฃผ๋๋ฐ ์ด ํ์ผ์๋ bundle.js๋ css ํ์ผ์ด ์ฐ๊ฒฐ๋์ด ์๋ค. html ํ์ผ์ ์ฝ์ผ๋ฉด์ react-router๊ฐ ์๋๋๋๋ฐ ์๋ฒ ์ชฝ์ด ์๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ด๋ฃจ์ด์ง๋ฉฐ ๋จ์ํ ์ฃผ์๋ง ๋ฐ๊ฟ์ฃผ๋ฉฐ ๊ฒฝ๋ก๋ฅผ ์ก์์ค๋ค. ์ด๋ฌํ ์ํ์์ ์๋ก๊ณ ์นจ์ ํ๊ฒ ๋๋ฉด url์ react-router์ ๊ฒฝ๋ก๋ก ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ ์ด๋ค ๊ฒ์ ๋ฐํํด๋ฌ๋ผ๋ ๊ฒ์ธ์ง ์ ์ ์์ด์ 404 ์๋ฌ๊ฐ..
Spring/๐ ์๋ฌ ๊ธฐ๋ก
๋ฐฐํฌ ์ ์๋ ๊ทธ๋ฅ ๋ก์ปฌ ๊ฒฝ๋ก ์ฝ์ด์ csv ํ์ผ์ ์๋ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋๋ก ํ๊ณ , ๊ฒฐ๊ณผ๋ ์ ๋์๋ค.๋ฐฐํฌํ ๋๋ resources์ csv ํ์ผ ๋ฃ๊ณ ๋ด๋ถ ๋ฆฌ์์ค ์ฝ์ด์ ๋ ์ค ์์๊ฑด๋ง.. ์ฝ๊ฒ ๋์ง ์์๋ค. ๊ฒ์ํด๋ณด๋ JAR๋ก ํจํค์งํด์ ์คํ์ํค๋ฉด InputStream์ ์จ์ ์ฝ์ด์์ผ๋๋ค๊ณ ํ๋ค. JAR ์์ ๋ค์ด์๋ ๋ฆฌ์์ค๋ฅผ classpath๋ก ์ ๊ทผํด์ ์ฝ์ ๋๋ ํ์ผ์์คํ
์ ์๋ ํ์ผ์ ์ฝ์ด์ค๋ ๊ฒ์ด ์๋๋ผ JAR ์์ ์๋ ํ์ผ์ด๋ฏ๋ก getFile()๋ก ์ฝ์ ์ ์๋ค๊ณ ํ๋ค. ์์ ํ๊ธฐ ์ ์ฝ๋ try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String line; while ((line ..
Spring/๐ ์๋ฌ ๊ธฐ๋ก
์๋ฐ์์ stream()์ ์ฌ์ฉํด orderProductOption์ ์๋ orderProduct๋ฅผ ์ค์ ํด์ฃผ๋ ๊ณผ์ ์์"Variable used in lambda expression should be final or effectively final" ์๋ฌ๋ฅผ ๋ํ๋ด๋ฉฐ orderProduct์ ๋นจ๊ฐ ๋ฐ์ค์ด ๊ทธ์ด์ก๋ค.๋๋ค ํํ์ ๋ด์์ ์ฌ์ฉ๋๋ ๋ณ์๊ฐ final ๋๋ effectively final์ด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ๋๋ณด๊ธฐ๐ effectively final : ๋ณ์๊ฐ ์ค์ ๋ก 'final' ๋ก ์ ์ธ๋์ด ์์ง ์๋๋ผ๋ ๋๋ค ํํ์ ๋ด์์ ํด๋น ๋ณ์์ ๊ฐ์ด ๋ณ๊ฒฝ๋์ง ์๋ ๊ฒฝ์ฐ์ด๋ค.int x = 10;Consumer consumer = (value) -> { // x = x + 5; /..