jojoldu / freelec-springboot2-webservice

1.07k stars 458 forks source link

[오류] p.311 curl localhost:8080 에러 #264

Open ec-han opened 4 years ago

ec-han commented 4 years ago

어떤 오류인가요?

오류설명:

프로젝트 주소

오류 로그

{"timestamp":"2020-02-17T04:02:16.812+0000","status":500,"error":"Internal Server Error" ,"message":"Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.SQLGrammarException: Unable to acquire JDBC Connection","path":"/"}

image

image

image

image

image

ec-han commented 4 years ago

자답입니다. app 디렉토리에 위치한 application-oauth.properties에 누락된 부분이 있어서 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' available 이 에러로그가 떴지만 수정 후 사라지고 톰캣 서버도 started됐지만 curl 명령어 수행 시 여전히 {"timestamp":"2020-02-18T12:44:24.577+0000","status":500,"error":"Internal Server Error","message":"Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.SQLGrammarException: Unable to acquire JDBC Connection","path":"/"} 이 에러가 뜨네요.. EC2 퍼블릭 DNS로 접속해도 마찬가지 입니다. image

parker1609 commented 4 years ago

@ec-han

curl 명령어 수행 시 오류가 뜹니다. {"timestamp":"2020-02-17T04:02:16.812+0000","status":500,"error":"Internal Server Error" ,"message":"Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.SQLGrammarException: Unable to acquire JDBC Connection","path":"/"}

이 오류에 대해서는 제가 위에 올려주신 서버 실행 로그에서 오류 메시지를 찾을 수 가 없지만, 아마 application-real-db.properties에서 spring.datasource.urldatabase 이름이 정확하지 않으면 위와 같은 오류가 발생합니다. (저의 경우는 '_'를 '-'로 잘못 적어서 위와 같은 오류가 발생하였습니다.)

이 오류는 로그에 보시면 해당 데이터베이스 이름을 찾을 수 없다는 메시지가 남아있습니다. 이 원인이 아니라면 에러 메시지가 보이도록 사진을 올려주시면 더 도움을 받기 쉬울 것 같습니다. 저의 경우는 아래와 같은 에러 메시지가 로그에 저장되어 있었습니다.

Caused by: java.sql.SQLException: Unknown database 'freelce-springboot2-webservice'
        at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.authentication(AbstractConnectProtocol.java:934) ~[mariadb-java-client-2.3.0.jar!/:na]
        at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.handleConnectionPhases(AbstractConnectProtocol.java:850) ~[mariadb-java-client-2.3.0.jar!/:na]
        at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:507) ~[mariadb-java-client-2.3.0.jar!/:na]
        at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1195) ~[mariadb-java-client-2.3.0.jar!/:na]
        ... 33 common frames omitted

책과 달리 보안그룹중에 freelce-springboot2-webservice RDS가 없습니다. 어떻게 만들어줘야하나요?

저도 이러한 이름의 보안그룹은 없지만 책에서는 따로 이름을 정해준 것이라 예상이 됩니다.

wlwlsus commented 3 years ago

@parker1609 에러 로그는 어디서 확인하나요?

parker1609 commented 2 years ago

@wlwlsus 인텔리제이에서 실행 버튼을 누르면 콘솔창이 열리면서 메시지들이 출력되는데, 이를 로그라고 부릅니다. (이 글, 위에서 4번째 사진 참고) 에러가 발생하면 해당 콘솔창에서 에러에 관한 로그를 확인할 수 있습니다!

wlwlsus commented 2 years ago

@parker1609 아 인텔리제이 로그 말고 배포 후 에러 로그를 말했던 것 같습니다. 이상하게 ec2에서 로그 파일에 제대로 에러가 안 쌓이더라구요! 이 문제는 다른 방법으로 해결했습니다. 감사합니다:)

koreanhong commented 1 year ago

혹시 어떻게들 해결하셨나요..? 저도 같은 증상인데ㅜ

Suhun0331 commented 10 months ago

저도 어떻게 해결했는지 알 수 있을까요?