위 코드는 수업중 진행하신 MemberServiceImpl.java 파일의 getEmailFromKakaoAccessToken 메소드의 일부입니다. 저기에서 마지막에 bodyMap 을 로그로 확인하는 부분이 있는데 위와 같이 nickname 을 보면 인코딩이 깨져서 나옵니다. 저 nickname 을 확인하려면 어떻게 해야하나요?
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'com.h2database:h2' runtimeOnly 'mysql:mysql-connector-java:8.3.0' testImplementation 'org.springframework.boot:spring-boot-starter-test' } 위와 같이 dependencies를 설정했고 밑은 application.yml입니다. spring: datasource: url: "jdbc:mysql://loca lhost/library" username: "root" password: "비밀번호" driver-class-name: com.mysql.cj.jdbc.Driver 비밀번호는 알아서 설정했습니다. 오류가 생겨서 dependencies에서 runtimeOnly 'mysql:mysql-connector-java:8.3.0'로 설정했습니다. 밑에는 에러 표시입니다. Execution failed for task ':LibraryAppApplication.main()'. > Could not resolve all files for configuration ':runtimeClasspath'. > Could not find mysql:mysql-connector-java:8.3.0. Required by: project : Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html > Task :LibraryAppApplication.main() FAILED Execution optimizations have been disabled for task ':LibraryAppApplication.main()' to ensure correctness due to the following reasons: - Type 'org.gradle.api.tasks.JavaExec' property 'classpath' cannot be resolved: Could not resolve all files for configuration ':runtimeClasspath'. Reason: An input file collection couldn't be resolved, making it impossible to determine task inputs. Please refer to https://docs.gradle.org/7.5/userguide/validation_problems.html#unresolvable_input for more details about this problem. Execution failed for task ':LibraryAppApplication.main()'. > Could not resolve all files for configuration ':runtimeClasspath'. > Could not find mysql:mysql-connector-java:8.3.0. Required by: project : Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html Could not find mysql:mysql-connector-java:8.3.0. Required by: project : Search in build.gradle files 뭐가 에러인가요..? 만약 Runtimeonly뒤에 version을 따로 기입하지 않는다면, Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure 라는 에러가 뜹니다.
https://drive.google.com/drive/folders/1unulH1E9G7a--c4InEpy_4NwIEKrvH4b?usp=sharing 회원가입 로직 테스트 오류가 납니다. 필요:hello.demo.domain.Member@f48a080 실제 :hello.demo.domain.Member@1d3a03fe <클릭하여 차이점 확인> org.opentest4j.AssertionFailedError: expected: hello.demo.domain.Member@f48a080 but was: hello.demo.domain.Member@1d3a03fe at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
home.html 내 messages() JS함수 안에보면 $.ajax 호출시 type이 post로 되어있던데요. MessageController.java 내에서는 @GetMapping에 @ResponseBody 던데요. 요거 호출시 get으로 맞져? 영상엔 post로 나오네요. post라면 form이 있어야 하는데요. 테스트 목적은 message ok 만 찍히는거 테스트 하는거구요.
섹션4 6번강의까지 잘 따라왔습니다. 혹시 제가 잘못 본게 있을까 해서 3번 강의를 들었지만 안되네요. 강의 내용 그대로 코딩했습니다. 머가 문제일까요? 500에러면 문법에러인건데요. html내 meta위치가 문제인가여? 강의중에 특정파일 내 html meta가 중첩된것도 보입니다. _csrf값이 undefined나 null일 경우도 에러가 생기는것도 같네요. 강사님 답변좀 부탁드립니다.
[질문 내용] 여기에 질문 내용을 남겨주세요. Parameter 0 of constructor in hello.hellospring.SpringConfig required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\Users\Han\IdeaProjects\hello-spring\out\production\classes\hello\hellospring\repository\MemoryMemberRepository.class] - springDataJpaMemberRepository: defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration springconfig에 빈이 2개있어서 그런거 같은데 어느 파일을 수정해야할까요 @Configuration public class SpringConfig { private MemberRepository memberRepository; private EntityManager em; @Autowired public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; } // @Autowired // public SpringConfig(DataSource dataSource) { // this.dataSource = dataSource; // } @Bean public MemberService memberService() { return new MemberService(memberRepository); } // @Bean // public MemberRepository memberRepository() { // return new MemoryMemberRepository(); // return new JdbcMemberRepository(dataSource); // return new JpaMemberRepository(em); // } } 생성자 주입을 못받고 있다고 합니다. @Autowired public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. https://drive.google.com/file/d/13B3t74Z3Xy8CyY0XTSTYjosfFZOhgOMB/view?usp=sharing 위는 프로젝트 파일입니다. db연결 까지 완료 했고 테이블까지 생성 했습니다. 하지만, 홈 화면에서 회원 목록을 조회 하려고 하면, 인텔리제이 콘솔창에 이와 같은 오류가 발생합니다. select * from member [42104-224]] with root cause org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" not found (this database is empty); SQL statement: select * from member [42104-224] db까지 연결을 잘 했다고 생각하는데, 대체 어디가 잘 못 되어 member테이블을 찾지 못하는지 모르겠습니다.
DTO 선언 시 @AllArgsConstructor를 붙여주셨는데 그 이유가 궁금합니다. Jackson 라이브러리가 정상적으로 JSON 데이터를 객체에 바인딩 해주기 위해 모든 인스턴스 변수를 포함한 생성자가 필요해서 그런 것인가요? 혹은 단순히 컨트롤러 메서드에서 DTO 데이터를 전체적으로 초기화하기 위함인가요?
실습도중 Script 클릭시 해당 오류가 납니다. 컴퓨터 스펙은 m1 입니다.. 2024-03-25 14:53:51,833 ERROR FileEntryRepository.java:192 : Error while fetching files from SVN for admin 다른 버전으로 설치해도 동일한 이슈가 나서 혹시 해결하셨던 내용이 있을지 문의드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의대로 h2데이터베이스 잘 들어가지는데 빌드하고 실행하면 조회와 멤버 등록에서 오류가 납니다 [2m2024-03-25T10:58:04.317+09:00[0;39m [31mERROR[0;39m [35m10840[0;39m [2m---[0;39m [2m[demo] [nio-8080-exec-5][0;39m [2m[0;39m[36mo.a.c.c.C.[.[.[/].[dispatcherServlet] [0;39m [2m:[0;39m Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root cause org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224] 오류는 이렇게 납니다. 어떻게 해야 하나요? 강의대로 application.properties 도 잘 했고, h2디비 실행도 잘 됩니다. 디비 켜놓고 해도 오류나네요 ㅜㅡ
CustomAuthenticationProvider 로 폼인증방식 강의 진행하셨는데요. Ajax인증방식에서는 FormAuthenticationProvider로 파일명이 Custom에서 바껴있는데 중간에 이름만 바꾸신건가여?? 강의를 듣다보면 파일이름이 달라져서 헷갈립니다. ㄷㄷ 강의진행시에 바로직전까지 했던 소스의 버전관리가 필요해보입니다. 다음강의 들으면 파일명이 혹은 실제코드가 달라져있는게 초짜인 수강생들에겐 좀 힘듭니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 밑에 무슨 경고문이 뜨고 실행버튼이 여기서는 보이지 않아요 이걸 어떻게 하면 되나요 ㅠㅠ ++)build.gradle 을 open as project 로도 해보았습니다.
안녕하세요. 인증 인가 방법에 대해서 강의를 통해 많은 도움이 되고 있습니다. 인증 인가 후 또는 인증 인가시에 부가 정보를 토큰 정보에 포함시킬 수 있는지 궁금합니다. 예를 들면 해당 사용자의 서비스별 구독 정보등을 토큰에 포함시켜 이 정보를 인가 정보로 활용하고 싶은데요. 이런 정보는 access_token과 별개로 인증 후에 따로 토큰을 생성하여 관리해야 하나요. 아니면 혹시 keycloak에서 생성하는 access_token에 포함시키는 방법이 있는지 궁금합니다. 조언 부탁드립니다. 감사합니다.
강의내용대로 project structor와 setting에서 SDK설정을 하고 grade build를 했으나 다음과 같이 오류가 납니다. 오류메시지 /prince-maker-main/build.gradle.kts:5:59: Unresolved reference: id 오류 라인 소스 id("org.springframework.boot") version springBootVersion id("io.spring.dependency-management") version "1.1.4" 해당부분이 해결되지 않으면 이후 강의는 눈으로만 봐야될꺼 같아서 문의드립니다~
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 이 오류는 무엇인가요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이미지와 같이 model.addAttribute("data","hello!!"); 입력했을 때, 아래와 같은 오류가 발생합니다. Cannot resolve method 'addAttribute' in 'Model'
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach() { memberRepository.clearStore(); } @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } 강의를 따라하다가 좀 잘 안되서 pdf내용을 그대로 긁어왔는데 import org.junit.jupiter.api.AfterEach;가 빠져있더라구요. 그것만 수정하면 될 줄 알았는데, get()과 assertThrows에서 문제가 발생하고있는것 같습니다 왜그럴까요?