Closed jojoldu closed 1 year ago
작성자: 재원
좋은글 고맙습니다. 내용을 너무나 이해하기 쉽게 정리하셔서 많은 도움이 되네요.
작성자: 창천향로 창천향로
잘봐주셔서 제가 더 감사합니다^^ 열심히 포스팅하겠습니다^^
작성자: 찬영
덕분에 항상 잘 보고있습니다^^
java.lang.AssertionError: Expecting: <"{"timestamp":1516500434632,"status":404,"error":"Not Found","message":"No message available","path":"/"}"> to contain: <"스프링 부트로 시작하는 웹 서비스">
at com.chanyoung.mycommunity.web.WebControllerTest.메인페이지_로딩(WebControllerTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
메인페이지 로딩 테스트에서 이렇게 에러가 뜨는데 뭐가 문제인가요? ㅠㅠ
작성자: 창천향로 창천향로
안녕하세요! 혹시 WebController에서 @GetMapping("/")으로 된 메소드가 존재하시나요? 메세지만 봐서는 404에러가 발생한것 같습니다. 404는 요청한 url주소가 없다는 메세지인데요. 실제 프로젝트를 구도시켜서 localhost:8080 으로 접속하면 404가 안뜨고 정상적인 페이지가 등장하는지 확인해보시면 좋을것 같습니다!
작성자: cothe
콘트롤러에 브레이크 걸어놓고 잘 들어가는 것이 확인이 된다면
compile 'pl.allegro.tech.boot:handlebars-spring-boot-starter:0.2.15'
가 정확하게 입력되었는지 다시 한번 확인해보세요. intelliJ 이면 External Libraries 에서 적용여부를 쉽게 확인 할 수 있습니다.
작성자: 찬영
네.. 혹시 제가 잘못 타이핑한건 아닌가 싶어서 github에 있는 필요한 코드를 복사해서 해봤는데도 이러네요 실제 application 구동시켜서 접속해봐도 페이지가 안뜨고.. 첫포스팅부터 다시 한번 해볼게요!! 감사합니다!
작성자: 창천향로 창천향로
네넵 혹시 개인 깃헙에 올리고 계시면 주소 남겨주세요. 저도 코드 같이 보고 문제있는게 있으면 말씀드릴게요!
작성자: 찬영
아 혹시 죄송한데 하나만 더 여쭤봐도 될까요?? 지금 노트북하고 데스크탑 번갈아가면서 하는데, 노트북에서 2번 포스팅 글까지 하고 Github에 올려서 데스크탑으로 했는데 이렇게 됐습니다.. 어제 다시 노트북으로 하니까 잘 되더라구요
그래서 생각을 해봤는데 Gradle을 수정하고 나서 import가 바로 진행되던데, 그 과정에서 인텔리J 종료하게 되면 문제가 생길 수 있나요? Gradle 빌드 시간이 오래 걸려서 급한일 때문에 중간에 끄고 나중에 다시 인텔리J 실행했을 때는 별다른 에러메세지같은것이 없었는데.. 혹시 이것 때문에 그런 것 같아서요!! 제가 IDE 사용이 많이 미숙한 편입니다..;; 물론 Git도 그런편이구요..
작성자: 창천향로 창천향로
음 아마 gradle이 필요한 패키지와 클래스를 호출하다가 중간에 끄셔서 미처 다 받지 못했던것 같아요. 노트북의 Git 프로젝트를 최종적으로 PUSH하신뒤, 데스크탑의 Github 프로젝트를 삭제 -> 다시 Github에서 받아오시는걸 추천드립니다.
꼬였을땐 리셋이 최고라는 말씀을 드리며.. 혹시 안되시는게 있으시면 댓글 다시 부탁드립니다!
작성자: betterfly
추가로 질문이 있습니다!! application.yml 설정에서 spring : profiles: local datasource : data: classpath:data-h2.sql #시작할때 실행시킬 script jpa : show-sql: true hibernate : ddl-auto: create-drop h2: console: enabled: true
설정하고 /h2-console 넘어가니까 계속 404가 뜨길래 도대체 뭐가 문제인지 몰라서 별짓을 다 해보다가 h2:console:enabled:true 이 문제있던 부분을 최상단으로 올리니까 페이지가 제대로 뜨더라구요 spring : profiles: local h2: console: enabled: true datasource : data: classpath:data-h2.sql #시작할때 실행시킬 script jpa : show-sql: true hibernate : ddl-auto: create-drop 이렇게요..
그러면 혹시나 위 설정한 부분중에서 문제가 발생해서 해당 h2:console 부분까지 못 닿는건가 싶었는데, 메인페이지에서 insert 했던 데이터들은 정상적으로 출력되구요... 이건 어떤 문제일까요..? 번거롭게 자꾸 질문드려 죄송합니다ㅜㅜ
작성자: 창천향로 창천향로
아! 저 h2 옵션은 정확히는 spring.h2.console.enabled=true 가 됩니다. 즉, yml에선 spring: 아래에서 1개 탭만큼 들여쓰기 되어 있어야 하는데요 지금 남겨주신 댓글을 봤을때는 spring:아래가 아니라 별도로 된것 같습니다.
yml의 문법인데 A: --B: ----C: 이렇게 되면 C는 A.B.C 로 맵핑이 되고
A: B: C: 이렇게 되면 그냥 C로 맵핑됩니다.
자세한 yml 문법은 아래를 참고하시면 좋을것 같습니다!
메인 페이지 테스트 코드 계속 에러 나네요ㅜㅜ 도와주세요~
구글을 뒤져도 몇일 계속 찾았는데 모르겠어요 ㅠㅠ 깃허브 가서 코드 비교해보고 다 짠건데 같은 에러가 나요.. 코드 문제가 아닌것 같아요.. 셋팅 문제인지 버전 문제인지 도움 부탁드려요~ ㅠㅠ
Spring Boot :: (v2.0.0.RELEASE) JAVA SDK 1.8.0_162 (자바8)
에러 종류가 많이 나와요..
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2018-03-13 14:34:00.353 ERROR 3240 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'postsService' defined in file
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#5d05f453': C
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': Post-processing of FactoryB~~ 등등
빨간색 에러들이 굉장히 많습니다..
음 에러만 봐서는 빈 생성이 안된거라 자세히 원인은 알수없구요 ㅠ 스프링부트 버전을 1.5.10 버전으로 내려보시겠어요?
웹 개린이라 ㅠㅠ 버전 어떻게 낮추는건가요? 인텔리제이에 포함되어 있던걸로 알아서.. 프로젝트 스트럭쳐나 셋팅으로 가서 낮추면 되는건가요~~?
아고 그러시군요 ㅠ build.gradle에 보시면 다음과 같은 설정이 보이실텐데요
여기서 2.0.0 을 1.5.10으로 변경하시고 Gradle refresh 하시면 됩니다
감사합니다! 헤헹.. 하지만 매번 새로운 에러나 뜨네요...ㅠ
!!! JUnit version 3.8 or later expected:
java.lang.ClassNotFoundException: junit.framework.ComparisonFailure at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.intellij.rt.execution.junit.JUnitStarter.junitVersionChecks(JUnitStarter.java:221) at com.intellij.rt.execution.junit.JUnitStarter.canWorkWithJUnitVersion(JUnitStarter.java:207) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:61)
Process finished with exit code -3
버전차이에 이렇게 많이 에러나 뜨나봅니다 ㅠㅠ 그냥 전부 최신으로 받아 썼었는데..
음 ㅋㅋ.. 메세지를 보시면 JUnit version 3.8 or later expected
라고 되어있습니다.
이건 Junit의 버전을 최소 3.8이상으로 올려달라는 이야기인데요
junit 의존성을 지우시고 spring-boot-starter-test
를 사용하시면 될것 같습니다.
감사합니다~! 하지만 안되서.. 다시 어떻게 할지 찾아봐야겠어요 ㅠ gradle에는 junit 없고 SpringRunner이 junit에서 가져오는거라 코드내에 있는 junit은 못건들겠어요. plugin에서 junit 찾아도 업데이트가 없네요 ㅠ
음 junit의 버전은 build.gradle에서 설정하니 소스코드내에서 변경할 것은 없습니다 제 Github의 build.gradle과 비교해서 다른점을 찾아서 수정하시면 될것 같아욤!
왠만한 파일들 그대로 복붙했는데 역시 설정이나 버전 문제 같습니다 ㅎㅎㅎ 네이버나 구글로 방법을 찾아보거나 최신버전 활용 방법을 찾아볼게요! 플러그인에서 따로 받아야할 할건 없죠~? 나머진 제가 해보겠습니다ㅠ 감사합니다 ~
넵넵 플러그인을 별도로 받으실건 없습니다! 힘내세요!
안녕하세요 spring + jsp로 웹 개발을 배우다가 최근 aws에서 구축해보고 싶어 블로그를 보면서 실습하고 있었는데 에러가 나네요 main.hbs 를 만들어 테스트 하는데 찾을수 없다고 나오네요 에러메세지는 java.lang.AssertionError: Expecting: <"{"timestamp":"2018-03-20T04:24:11.184+0000","status":404,"error":"Not Found","message":"No message available","path":"/"}"> to contain: <"삽입 테스트"> at com.SpringBoot.Demo.WebService.WebControllerTest.webpageLoad(WebControllerTest.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 이고 깃헙은 https://github.com/orgin1127/terraceHouse 입니다 메세지 분석으로 봐서는 "/"로 만들어진 RequestMapping이 없다는것 같은데 깃헙 참고하시면 WebRestController 패키지 안에 WebController를 만들고 @GetMapping("/")을 만들어뒀는데 인식이 안되네요. 혹시 원인을 아신다면 조언 부탁드립니다. 그리고 hbs확장자는 따로 만들기 메뉴가 없어서 파일 만들기에 확장자를 지정해서 만들어 줬는데 이렇게 생성하는게 맞는지... 초보라서 아직 모르는게 너무 많아 기초적인걸 질문드려서 죄송합니다 ㅠㅠ
음 handlebar 0.2.15 라이브러리가 스프링부트 2.0을 지원안해서 템플릿이 안된걸수도 있습니다 스프링부트 버전을 1.5.10으로 변경하시거나 핸들바 버전을 0.3.0 으로 변경해보시겠어요? 변경하는 방법은 윗 댓글을 참고하시면 됩니다!
스프링부트 버전을 내리고 리프레쉬 하니 진짜 돌아가네요! 감사합니다 ㅎㅎ 남은 과정도 열심히 해 볼게요!
네넵! 파이팅입니다!
에러 내용은 id값이 없어서 인 것 같은데 넣어 줬을 경우 데이터가 들어가지만 화면에서 저장할 때 key값 중복으로 오류가 발생하네요 ㅎㅎ 화면에서 값 입력시 auto increment 되는데 h2-console에서도 insert query시 id를 넣지 않을 경우 에러가 발생하는거 보면 Posts class에서 id에 @GeneratedValue 말고 다른 설정이 필요한 것 일까요?
음.. 아뇨 위 쿼리로 실행하면 ID가 auto_increment 되서 자동으로 들어가야 정상입니다. 그게 안된다면 지금 Posts 클래스에
@Id
@GeneratedValue
위 두가지 옵션이 제대로 안먹힌것입니다.
콘솔창에 출력하는 create table posts쿼리를 살펴보셔야할것 같습니다!
안녕하세요. 포스트내용이 Spring boot를 처음 접하는 사람으로써 많은 도움이 됩니다. ( 개인적으로 각각의 애노테이션에 대한설명도 있어서 좋더라구요. )
저도 윗분처럼 nested exception is org.h2.jdbc.JdbcSQLException: NULL not allowed for column "ID"; SQL statement: 가 뜨더라구요. (스프링버전 2.0으로 하고있습니다.)
id값에 @Id @GeneratedValue 잘 선언되어있습니다.
웹에서 '글 등록'시 정상적으로 글등록이 되며 auto_increment가 되는 것을 확인하였습니다.
하지만, data-h2.sql에서 'id'값을 선언하지않으면 에러가 뜨더라구요. 원인과 해결방법을 찾아보고있습니다.
@alsdns016 안녕하세요? 스프링부트 2.0의 문제일수도 있어서 1.5.10으로 내려서 진행해보시겠어요?
@msmetal @alsdns016 auto_increment
가 안되는 문제는 스프링부트 2.0에서 발생한게 맞습니다.
위 내용으로 질문하신 분이 많아서 별도로 정리했으니 한번 참고해보세요!
링크
안녕하세요, 스프링부트 잘 배우고 있습니다. 방금 에러가 하나 떴는데 제가 아직 JPA, Springboot에 익숙하지 않아 질문드립니다.
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'postsService' defined in file [C:\Users\JeongHo\IdeaProjects\spring-webservice\out\production\classes\com\jeongho\webservice\service\PostsService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'postsRepository': Cannot create inner bean '(inner bean)#5fcd1c5f' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#5fcd1c5f': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': Post-processing of FactoryBean's singleton object failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of class path resource [data-h2.sql]: insert into posts (title, author, content, created_date, modified_date) values ('테스트1', 'test1@gmail.com', '테스트1의 본문', now(), now()); nested exception is org.h2.jdbc.JdbcSQLException: NULL not allowed for column "ID"; SQL statement: insert into posts (title, author, content, created_date, modified_date) values ('테스트1', 'test1@gmail.com', '테스트1의 본문', now(), now()) [23502-197]
위와 같이 에러가 떴는데, postService 빈 객체를 생성할 떄 생긴 오류 같습니다. 혹시 어느 부분에서 잘못되었는지 아시나요?
@wwwkang8 안녕하세요? 맨 마지막줄 오류 메세지와 윗 댓글들을 보시면 힌트가 되실텐데요. 일단 해결책을 먼저 말씀드리면 스프링부트 버전을 1.5.10 혹은 1.5.15 버전등 1.5 버전대로 변경해보시면 해결될것 같습니다.
2.0대 문제는 위 댓글에 있는 링크를 참고하시면 될것 같습니다 :)
답변 감사합니다. jojoldu님 github에 있는것처럼 스프링부트 버전을 1.5.9 버전으로 변경하고, handlerbar 버전은 0.2.15로 변경했습니다. 그리고나서 실행해 보니
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'handlebarsBeanPostProcessor' defined in class path resource [pl/allegro/tech/boot/autoconfigure/handlebars/HandlebarsHelpersAutoConfiguration.class]: Unsatisfied dependency expressed through method 'handlebarsBeanPostProcessor' parameter 0;
이렇게 에러코드가 나왔는데, 핸들러바가 버전을 변경해야 할까요??
질문있습니다! ajax함수에서 done 로직을 안타는것 같아요.. alert창은 [object object]식으로 객체가 출력되고 location.reload()가 작동이 되지 않는것 같은데 문제가 무엇인지 모르겠습니다.
중요하진 않은데 궁금합니다 ㅎㅎ.. 항상 좋은글 잘보고 있습니다!
잘보고 있습니다 ! 좋은강의 정말 감사합니다.
안녕하세요! 따라해보고있는 학생인데요 질문이 있습니다..! 다 따라왔는데 마지막 @Transactional ( readOnly = true) 에서 자꾸 에러가 나네요 ㅠㅠ org.springframework.dao.InvalidDataAccessApiUsageException: You're trying to execute a streaming query method without a surrounding transaction that keeps the connection open so that the Stream can actually be consumed. Make sure the code consuming the stream uses @Transactional or any other way of declaring a (read-only) transaction. java 8 몇일을 헤맸는데도 도저히 모르겠습니다 ㅠㅠ 도와주시면 감사하겠습니다! 스프링부트는 2.0 hibernate는 0.3.0 자바는 1.8 사용하고있습니다!!
안녕하세요 매번 블로그의 글로 많은 도움을 받고 있습니다.
예전 블로그 글을 보다가 문득 궁금한 점이 생겨서 댓글 남깁니다.
해당 글의 본문에 Controller에서 사용할 DTO 클래스를 생성하면서 예제로
PostsSaveRequestDto를 생성하셨는데요. 이 클래스는 Posts 테이블에 글을
insert 할때 사용하는 Dto인데 그럼 CURD 작업별로 Dto를 별도로 생성을 해주나요?
insert 시는 PostsSaveRequestDto를 사용하고
delete 시는 PostsDeleteRequestDto를 사용하고
update 시는 PostsUpdateRequestDto를 사용하고
select 시는 PostsSelectRequestDto를 사용하고
위와 같이 CRUD 작업별로 생성해서 사용하는 것인지 궁금합니다.
실제 CRUD를 위해 컨트롤러를 호출하다 보면 CRUD별로 필요한 값들이 서로 다르기 때문에
애매한 경우가 많았는데 기존에는 Dto를 하나로 퉁치다보니 CRUD 작업에 모두 동일한 Dto를 사용했거든요ㅠㅠ
제가 이해한게 맞는지요!
감사합니다.
@jon890 질문하신지 오래되어 보실지는 모르겠지만 대신 답변드리겠습니다.
저도 같은 문제가 있었는데 혹시 컨트롤러 구성 시 리턴타입이 없는 컨트롤러를 구성하고 ajax 호출을 그대로 따라하신건 아닌가요? ajax호출할 때 dataType은 서버에서 보내는 값 즉, 클라이언트가 받을 값의 형식을 지정하는 속성입니다. 클라이언트가 받는 값이 없는데 이 속성을 설정을 하니 오류가 난 것 같습니다.
@transactional ( readOnly = true) 저도 여기서 오류가 나서 글을 천천히 읽어보니 속도 향상을 위해서 readOnly를 썼더라구요 그래서 저는 속성을 지우고 @transactional 만 남겼더니 잘 돌아갔습니다.
잘읽었습니다. 다해봤는데 한가지 문제점이 있습니다 data-h2.sql을 프로젝트 실행시마다 동작하게 하는 부분이요
sql파일 작성후 에디터에서 인코딩을 data-h2.sql
ANSI로 저장하면 프로젝트가 잘 작동해서 insert문이 정상 실행됩니다 다만 한글이 깨져서 insert됩니다. select하면 깨진채로 저장되어있습니다.
UTF-8로 저장하면
프로젝트 초기 실행시 에러가 납니다.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException:
Failed to execute SQL script statement #1 of class path resource [data-h2_2.sql]: insert into posts (title, author, content, created_date, modified_date) values ('테스트1', 'test1@gmail.com', '테스트1의 본문', now(), now());
nested exception is org.h2.jdbc.JdbcSQLException:
Syntax error in SQL statement "INSERT[*] INTO POSTS (TITLE, AUTHOR, CONTENT, CREATED_DATE, MODIFIED_DATE) VALUES ('테스트1', 'test1@gmail.com', '테스트1의 본문', NOW(), NOW()) ";
SQL statement:
insert into posts (title, author, content, created_date, modified_date) values ('테스트1', 'test1@gmail.com', '테스트1의 본문', now(), now()) [42000-197]
이때 application.yml에 continue-on-error: true 속성을 넣어주면 에러를 무시하고 작동되는데 두 insert문중 1번째는 무시되고 2번째것만 작동합니다. 이때 한글은 안깨집니다.
도무지 인터넷을 온통 뒤져도 해결책을 모르겠네요. 42000-197가 파일에러라는데 왜 ANSI인코딩만 정상구동하고 UTF8은 빈생성실패하는지 모르겠어요...ㅠ
저도 @shin-minkyung 님 처럼 같은 에러가 발생했는데요. 저는 이클립스로 개발중이고, data-h2.sql 파일을 생성한 후 열어보니 이클립스로는 열리지가 않더라구요. 그래서 메모장으로 작업했는데
그래서 저는 sql developer를 통해 파일을 다시 생성해서 진행하였고, 그 결과 정상 구동됨을 확인하였습니다! 메모장같은 텍스트 에디터로 작성하면 타입에서 에러가 발생하나봅니다!
안녕하세요. 뒤늦게나마 웹개발을 공부하고 있는 개발자입니다. 첫번째 과정부터 따라해오면서 많은 도움을 받고 있습니다. 다름이 아니고 이번 Handlebars를 사용해 화면을 만드는 과정을 따라하던 중에 WebControllerTests에서 테스트 진행시 아래와 같은 에러가 발생합니다.
java.lang.AssertionError: Expecting: <"{"timestamp":"2019-03-28T07:08:17.069+0000","status":404,"error":"Not Found","message":"No message available","path":"/"}"> to contain: <"스프링부트로 시작하는 웹 서비스"> at com.ishong.webservice.web.WebControllerTests.loadMainPage(WebControllerTests.java:32) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
메인 페이지 호출시에는 아래와 같이 에러가 발생합니다.
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Mar 28 16:06:54 KST 2019 There was an unexpected error (type=Not Found, status=404). No message available
페이지 호출시에 main.hbs를 제대로 찾지 못하는것같아 먼저 남겨주신 댓글을 참고하여 build.gradle에 설정을 확인해봐도 계속 동일한 현상을 겪고 있습니다.
위에서 말씀해주셨던것처럼 SpringBoot 2.1.3을 사용하고 있어 handlebar 0.3.1 버전을 사용중입니다. 도움주시면 감사하겠습니다!
와... 동일한 소스를 가지고 한참을 삽질을 했는데... springBoot에서는 테스트 파일이 설정되는 경로도 무지 중요하군요. 제대로 된 패키지에 파일을 넣어주니 정상적으로 작동하네요.. ㅠㅠ
댓글로 작성된 모든 에러를 다 겪었습니다. 앞선 분들의 경험을 comment로 남겨주셔서 정말 감사드립니다. 동욱님의 환경설정을 그대로 따라가는 것도 좋으나, 하나하나 안되는 부분을 하나하나 겪으면서 모든 코드를 차분히 하나하나 다시 살펴보게 된 것도 좋은 경험인 듯 합니다.
멋지게 정리해주신 동욱님과 앞선 선배님들의 경험 정말 감사합니다!!
안녕하세요~ SpringBoot를 공부하면서 또한번 도움을 받습니다ㅠ 항상 감사합니다. 궁금한것이 있는데요. 중간쯤 Dto 클래스를 테스트하기 위해서 Lombok의 @Builder 어노테이션을 추가하셨는데, 보통의 경우에도 테스트를 위해서 dto에 @Builder 어노테이션을 추가해놓는지 궁금합니다.
취업관련 질문 답변 글 잘보았습니다 !!
@galid1 님 안녕하세요 테스트를 위해서라도 @Builder를 추가하기도 합니다. 값을 세팅해야만 테스트가 가능하다면 넣어서 사용합니다 :)
@VA-Kim 님 칭찬 감사합니다 :)
@87ishong 님 에러 코드가 404 인데요 404는 URL 주소가 잘못되었다를 의미해서 URL 주소를 다시 확인해보시면 될것 같아요!
저도 윗 댓글과 동일하게 404 에러가 발생하는데 윗 댓글처럼 버전문제 같은데
부트와 핸들바 버전을 아무리 바꿔도 계속해서 에러가 발생합니다...
아래 깃에 소스올렸는데 혹시 확인이 가능할까요?? ㅠㅜㅠㅜ
아 파일의 위치때문이었습니다... 기존에 com.web; 에 webcontroller가 위치할때는 안되다가 com.web.boardservice.webmain; 여기로 옮기니깐 정상적으로 실행됩니다....
혹시 경로를 어떤 설정에서 체크하고 있는지 알수있을까요??
부트스트랩 적용 후 화면을 호출했는데 스타일 시트가 안먹은 그냥 생 html 로 짠것처럼 화면이 나오거든요... 아무래도 부트스트랩이 정상적으로 적용이 안된 것 같은데 부트스트랩 설정관련해서 정상적으로 적용되었는지 아니면 어느부분에서 에러가 난건지... 확인할 수 있는 방법이 있을까요??? ㅠ
http://jojoldu.tistory.com/255