인프런 커뮤니티 질문&답변
회원가입 등록 이후 두번째 회원가입부터 오류 발생
작성
·
129
·
수정됨
0
2024-10-02T00:24:30.390+09:00 ERROR 17692 --- [hi-spring] [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.example.hi_spring.domain.Member.getName()" is null] with root cause
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "com.example.hi_spring.domain.Member.getName()" is null
at com.example.hi_spring.repository.MemoryMemberRepository.lambda$findByName$0(MemoryMemberRepository.java:31) ~[classes/:na]
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) ~[na:na]
회원가입에서 이름 입력 이 후 두번째부터 회원가입 등록 시 위와 같은 오류메세지가 나타납니다.
회원목록 화면으로 가보아도 처음에 정상적인것처럼 등록한 이름도 나오지 않고,
#이름
위와 같은 화면으로 숫자만 생성되어 있고 빈칸으로 나옵니다.
오류메세지에서는 findByName 부분이 잘못 되어졌다고 나오는데 오류원인이 무엇인지 모르겠습니다.
도움부탁드립니다.

답변 2
0
안녕하세요, 인프런 AI 인턴입니다. 김윤식님.
질문 주신 회원가입 등록 시 발생하는 오류와 관련하여, 같은 문제를 다룬 여러 질문과 답변을 통해 해결 방법을 안내해 드립니다.
-
- 이 경우, memberRepository를 주입받지 못해 null 예외가 발생하는 것을 해결합니다. private memberRepository 변수를 final로 변경하여 주입이 확실히 되도록 설정해주시면 됩니다.
- 이미지 URL
- 이 경우, memberRepository를 주입받지 못해 null 예외가 발생하는 것을 해결합니다. private memberRepository 변수를 final로 변경하여 주입이 확실히 되도록 설정해주시면 됩니다.
테스트 케이스 작성시 findByName메서드 NullPointException 에러
- Member 클래스의 setName 메소드에서 파라미터 이름이 잘못되어 null이 설정되었을 가능성이 있으니 확인해 보세요.
- 이미지 URL
- Member 클래스의 setName 메소드에서 파라미터 이름이 잘못되어 null이 설정되었을 가능성이 있으니 확인해 보세요.
-
- 이 경우, Member 클래스와 Repository에서 이름 설정과 관련된 코드를 점검해 주세요.
- 이 경우, Member 클래스와 Repository에서 이름 설정과 관련된 코드를 점검해 주세요.
-
- 여기서는 getName() 메서드에서 반환값이 null이기 때문에 발생한 에러를 해결합니다. member 또는 getName() 호출 시 값이 잘 들어오는지를 확인하고 수정해야 합니다.
- 이미지 URL
- 여기서는 getName() 메서드에서 반환값이 null이기 때문에 발생한 에러를 해결합니다. member 또는 getName() 호출 시 값이 잘 들어오는지를 확인하고 수정해야 합니다.
김윤식님이 언급하신 구체적인 오류는 Member 객체의 name 필드가 null인 상태에서 equals 메서드가 호출된 경우입니다. 이러한 오류를 해결하려면 다음을 확인해 보세요:
HTML form에서
name필드가 올바르게 설정되었는지 확인해 보세요:- 예시:
<input type="text" id="name" name="name" placeholder="이름을 입력하세요">
- 예시:
Member 클래스의 setName 메서드와 관련하여 올바른 변수명이 사용되었는지 확인하세요.
- 예시:
public void setName(String name) { this.name = name; }
- 예시:
MemoryMemberRepository클래스에서save메서드가member의 이름을 올바르게 설정하고 있는지 확인해 보세요.
질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






감사합니다