save.jsp 에서 화면에서 jsp가 제대로 등록되지 않은 같습니다. <에러코드> An error occurred at line: [14] in the generated java file: [C:\Users\ParkWonkyoung\AppData\Local\Temp\tomcat.8080.2915155530144798779\work\Tomcat\ localhost \ROOT\org\apache\jsp\jsp\members\save_jsp.java] Only a type can be imported. hello.servlet.domain.member.MemberRepository resolves to a package An error occurred at line: [15] in the generated java file: [C:\Users\ParkWonkyoung\AppData\Local\Temp\tomcat.8080.2915155530144798779\work\Tomcat\ localhost \ROOT\org\apache\jsp\jsp\members\save_jsp.java] Only a type can be imported. hello.servlet.domain.member.Member resolves to a package An error occurred at line: [6] in the jsp file: [/jsp/members/save.jsp] MemberRepository cannot be resolved to a type 3: <%@ page contentType="text/html;charset=UTF-8" language="java" %> 4: <% 5: // request, response 사용 가능 6: MemberRepository memberRepository = MemberRepository.getInstance(); 7: System.out.println("save.jsp"); 8: String username = request.getParameter("username"); 9: int age = Integer.parseInt(request.getParameter("age")); An error occurred at line: [6] in the jsp file: [/jsp/members/save.jsp] MemberRepository cannot be resolved 3: <%@ page contentType="text/html;charset=UTF-8" language="java" %> 4: <% 5: // request, response 사용 가능 6: MemberRepository memberRepository = MemberRepository.getInstance(); 7: System.out.println("save.jsp"); 8: String username = request.getParameter("username"); 9: int age = Integer.parseInt(request.getParameter("age")); An error occurred at line: [10] in the jsp file: [/jsp/members/save.jsp] Member cannot be resolved to a type 7: System.out.println("save.jsp"); 8: String username = request.getParameter("username"); 9: int age = Integer.parseInt(request.getParameter("age")); 10: Member member = new Member(username, age); 11: System.out.println("member = " + member); 12: memberRepository.save (member); 13: %> An error occurred at line: [10] in the jsp file: [/jsp/members/save.jsp] Member cannot be resolved to a type 7: System.out.println("save.jsp"); 8: String username = request.getParameter("username"); 9: int age = Integer.parseInt(request.getParameter("age")); 10: Member member = new Member(username, age); 11: System.out.println("member = " + member); 12: memberRepository.save (member); 13: %> Stacktrace:] with root cause org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [14] in the generated java file: [C:\Users\ParkWonkyoung\AppData\Local\Temp\tomcat.8080.2915155530144798779\work\Tomcat\ localhost \ROOT\org\apache\jsp\jsp\members\save_jsp.java] Only a type can be imported. hello.servlet.domain.member.MemberRepository resolves to a package An error occurred at line: [15] in the generated java file: [C:\Users\ParkWonkyoung\AppData\Local\Temp\tomcat.8080.2915155530144798779\work\Tomcat\ localhost \ROOT\org\apache\jsp\jsp\members\save_jsp.java] Only a type can be imported. hello.servlet.domain.member.Member resolves to a package An error occurred at line: [6] in the jsp file: [/jsp/members/save.jsp] MemberRepository cannot be resolved to a type 3: <%@ page contentType="text/html;charset=UTF-8" language="java" %> 4: <% 5: // request, response 사용 가능 6: MemberRepository memberRepository = MemberRepository.getInstance(); 7: System.out.println("save.jsp"); 8: String username = request.getParameter("username"); 9: int age = Integer.parseInt(request.getParameter("age")); An error occurred at line: [6] in the jsp file: [/jsp/members/save.jsp] MemberRepository cannot be resolved 3: <%@ page contentType="text/html;charset=UTF-8" language="java" %> 4: <% 5: // request, response 사용 가능 6: MemberRepository memberRepository = MemberRepository.getInstance(); 7: System.out.println("save.jsp"); 8: String username = request.getParameter("username"); 9: int age = Integer.parseInt(request.getParameter("age")); An error occurred at line: [10] in the jsp file: [/jsp/members/save.jsp] Member cannot be resolved to a type 7: System.out.println("save.jsp"); 8: String username = request.getParameter("username"); 9: int age = Integer.parseInt(request.getParameter("age")); 10: Member member = new Member(username, age); 11: System.out.println("member = " + member); 12: memberRepository.save (member); 13: %>
MVC부분에서 http://localhost:8080/hello-mvc?name=spring !!! 이렇게 치면 404error가 뜹니다. controller코드는 이런 식으로 작성했습니다. 서버 연결 시에도 이걸로 연결을 잘 했습니다. 기본 static.html 등은 잘 보이는데 controller을 이용해서 하면 404에러가 뜹니다. 어떤 식으로 해결을 해야할지 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원 리포지토리 테스트 케이스 작성에서 clear 가 없다면 기존 저장소에 저장한 객체들로 인해서 오류가 발생하는 것을 알려주셨습니다. 그런데 저는 왜 오류가 발생하지 않는 걸까요? 다른 질문 글을 확인했을 때 테스트 순서가 랜덤이라 성공이 될 수 있지만, 여러번 실행해도 오류가 발생하지 않습니다. 혹시 저의 코드에 오타가 있을까요? package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); // @AfterEach // public void afterEach(){ // repository.clearStore(); // } @Test public void save(){ Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); assertThat(result).isEqualTo(member); } @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); } @Test public void findAll() { Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); assertThat(result.size()).isEqualTo(2 ); } }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 똑같이 테스트만들고 런 했지만 아래와 같은 에러가 나옵니다 빌드를 gradle로 설정했고 utf8로 설정도했습니다 이건 어떤것떄문에 그럴가요?
안녕하세요, 이 강의를 완강이후 프로젝트를 수행중인 학부생입니다. 로그인 기능 구현과 관련하여 강의 예제 코드를 참고하며 구현하던 중 이해할 수 없는 현상이 발생하여 질문 드립니다. 코드 LoginInterceptor.java package Alchole_free.Cockpybara.interceptor; import Alchole_free.Cockpybara.constant.SessionLoginConst; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @Slf4j //@Component public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); log.info("session = {}", session); if(session==null || session.getAttribute(SessionLoginConst.LOGIN_MEMBER)==null){ log.info("로그인되지 않은 사용자"); response.sendRedirect("/login"); return false; } log.info("정상 요청"); return true; } } WebConfig.java package Alchole_free.Cockpybara.config; import Alchole_free.Cockpybara.interceptor.LoginInterceptor; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; //@Slf4j @Configuration //@RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { // private final LoginInterceptor loginInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) .order(1) .addPathPatterns("/**") .excludePathPatterns("/", "/join", "/login", "/css/**", "/*.ico", "/error"); } } 문제 위와 같이 코드를 구성하고 애플리케이션을 동작시켰는데, 인터셉터가 아예 로그에 남지 않는(생성되지 않는 것으로 보이는) 현상이 발생하였습니다. 관련하여 구글링을 하다보니 인터셉터 클래스를 빈으로 등록해주는 형태가 아니면 동작하지 않을 수 있다고 하여, 빈으로 등록하고 WebConfig 클래스에서 생성자를 통해 주입받는 형태로 구현도 해보았는데 여전히 같은 문제가 발생하더군요. 도대체 어느 부분에서 문제가 발생하는 것인지 파악하기가 힘들어 고민끝에 질문드립니다. 혹시 몰라 아래 빌드, 설정 파일도 첨부합니다. 문제 실행 화면 /hello 로 Controller @GetMapping 메서드를 구현해놓고 요청을 보냈으나 인터셉터 관련 로그가 기록되지 않는 모습입니다. build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.13' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'Alchole_free' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //swagger 설정 implementation group:'io.springfox', name:'springfox-swagger2', version:'2.8.0' implementation group:'io.springfox', name:'springfox-swagger-ui', version:'2.8.0' } tasks.named('test') { useJUnitPlatform() } application.properties # DataSource spring.datasource.url=jdbc:mariadb://localhost:3306/cockpybara spring.datasource.username=root spring.datasource.password=cockpybara spring.datasource.driver-class-name=org.mariadb.jdbc.Driver # JPA spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect #show parameter binding logging.level.org.hibernate.type.descriptor.sql=DEBUG logging.level.org.hibernate.SQL=DEBUG
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] cd로 이동 후 gradlew bulid를 실행했을 때 Task 'bulid' not found in root project 'hello-spring'. Some candidates are: 'build'. 라고 에러가 납니다. 환경변수는 어느 답변 중 %JAVA_HOME%\bin으로 하는 것을 확인했습니다.
안녕하세요 타임리프에서 LocalDate 넘기는 방법중에 타임리프에서 format을 하시던데 제가 프론트 코드를 일하면서 못봐서 그런건지는 모르겠는데 json으로 date를 포맷팅 해서 넘겨주는 방식은 본 것 같거든요 혹시 타임리프에서 date를 직접 받아와서 사용 하는 방식중 어느 방식이 더 좋을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] <프로젝트 생성>강의를 보고 따라 스프링부트 프로젝트를 생성했습니다. 그런데 다음 오류가 발생하여 글 남깁니다. _________________________ java.io .StreamCorruptedException: invalid type code: 00 > invalid type code: 00 ___________________________ 다음은 빌드 그레들 코드 내용입니다.(자바 17 설치 또한 완료했습니다) 어떻게 해결할 수 있을까요? ____________________________ plugins { id 'java' id 'org.springframework.boot' version '3.1.1' id 'io.spring.dependency-management' version '1.1.0' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. @RequestParam 어노테이션은 localhost:8080/?username=kim 처럼 뒤에 쿼리문을 받는 거라고 알고있는데 강의 영상에서는 save 함수에서 쿼리문이 없는데도 값이 전달되는데 이유가 무엇인지 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] test { useJUnitPlatform() } 1. Expression 'test' cannot be invoked as a function. The function 'invoke()' is not found <html>Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:<br/>public val SourceSetContainer.test: NamedDomainObjectProvider<SourceSet> defined in org.gradle.kotlin.dsl<br/>public val TaskContainer.test: TaskProvider<Test> defined in org.gradle.kotlin.dsl Unresolved reference: useJUnitPlatform 3가지 경고가 뜹니다. m1 맥 쓰고 있구요.. .kts 라서 오류생기는 것 같은데 코드를 찾아도 안나오네요.. 해결 부탁드립니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] JAVA_HOME 도 설정했고 다른 답변들 보고 하라는대로 설정했는데도 build가 안돼요 ㅠ 뭐가 문제일까요 <에러화면> <각종 설정들>