월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
jsp쪽 말고 백엔드에서 커스텀메시지를 어떻게 뽑아내나요?
jsp 단에서는 <form:errors path="data1"/><br/> 혹은 <c:if test="${errors.hasFieldErrors('data1') }"> <spring:message code="${errors.getFieldError('data1').codes[0]}"/><br/> </c:if> 이렇게 뽑아내는데 백엔드단 controller에서 result에서 어떻게 커스텀 메시지를 뽑아내야하나요? bindingresult에서 자동으로 매핑시켜주진않고 직접 message에서 codes[0]번째 이름으로 등록된 프로퍼티 값을 가져오도록 코딩해줘야되나요? System.out.println(res.getMessage(result.getFieldError("data1").getCodes()[0], null, null)); 이렇게 뽑으면 뽑아서쓸수있긴한데.. 뭔가 자동으로 매핑시켜주는게있을거같아서요. 다음강의를 보면 나오려나요~? 감사합니다^^
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
오류 질문 드립니다
항상 강의 잘 보고 있습니다. 다름이 아니라 오류 해결 시도를 많이 해봤는데 잘 안 잡혀서 여쭤 봅니다 오류 코드 올려 드리겠습니다. HTTP 상태 500 – 내부 서버 오류 타입 예외 보고 메시지 서블릿 [appServlet]을(를) 위한 Servlet.init() 호출이 예외를 발생시켰습니다. 설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다. 예외 javax.servlet.ServletException: 서블릿 [appServlet]을(를) 위한 Servlet.init() 호출이 예외를 발생시켰습니다. org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) 근본 원인 (root cause) org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'restApiController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginUserBean': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request. org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:702) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:668) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:716) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:591) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:530) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:170) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) 근본 원인 (root cause) org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginUserBean': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request. org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:337) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:702) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:668) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:716) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:591) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:530) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:170) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) 근본 원인 (root cause) org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginUserBean': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request. org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:368) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:276) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeanByName(AbstractAutowireCapableBeanFactory.java:454) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:543) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:513) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:653) org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:224) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:334) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:702) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:668) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:716) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:591) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:530) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:170) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) 근본 원인 (root cause) java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request. org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131) org.springframework.web.context.request.SessionScope.get(SessionScope.java:55) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:356) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:276) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeanByName(AbstractAutowireCapableBeanFactory.java:454) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:543) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:513) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:653) org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:224) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:334) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:702) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:668) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:716) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:591) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:530) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:170) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) 비고 근본 원인(root cause)의 풀 스택 트레이스를, 서버 로그들에서 확인할 수 있습니다. Apache Tomcat/9.0.36
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
문의
/abc 실행할때 @ModelAttribute("good") UserBean good 이렇게 리퀘스트영역에 객체가 저장되어 전송되서 jsp파일에서 사용하고 form태그를 이용하여 데이터를 /abc_pro 로 넘길때 @ModelAttribute("good") UserBean good 여기서 이게 /abc에서 만든 객체의 주소값이랑 같은지 아니면 새롭게 다시 만들어져 /abc에서 넘긴 데이터값이 주입이 되는지 햇갈려서 문의드립니다
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
DB가 mysql일때는 @SelectKey 와 addContentInfo의 @Insert문은 어떻게 구성하나요
안녕하세요? 23분 부터의 내용입니다. DB가 mysql일때는 @SelectKey 와 addContentInfo의 @Insert문은 어떻게 구성하나요? 구글링해도 잘 모르겠습니다...ㅠㅜ @selectkey 쿼리내용을 SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = "databaseName" AND TABLE_NAME = "tableName" 로 수정하는게 맞는지 궁금합니다..양질의 강의 감사히 보고있습니다!
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
정보수정처리 질문
선생님 항상 감사합니다. 정보수정처리에서 질문이 있습니다. 사용자 정보를 수정하는 처리를 할 때, 선생님께서는 컨트롤러에서 이렇게 설정하고, 서비스에서 이런식으로 modifyUserBean을 설정하셔서 처음 수정화면에 들어갔을 때, user_id와 user_name을 받아올 수 있도록 하셨는데요. 저는 이걸 더 간단하게 해보고자 컨트롤러 서비스 Dao 매퍼 이런식으로 해줘서, 서비스에서 set을 통해 넣어주는게 아니라, Dao에서부터 아예 빈을 받아오도록 해서 그 빈을 tempModifyUserBean에 넣어줬는데요. (tempModifyUserBean = userDao.getTempModifyUserBean(tempModifyUserBean);이렇게 set을 통해 넣어준게 아니라 바로 넣어줘버렸습니다. ) 이렇게 하니깐 수정화면에 들어갔을 때 user_name이랑 user_id가 안나옵니다. 혹시 그 이유를 알 수 있을까요? 서비스에서 System.out.println()으로 이름을 찍어봤을 때는 잘 나오는데요. 이유를 알고 싶습니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
ServletAppContext클래스에서 Property에 null값이 들어갑니다.
선생님 안녕하세요. 좋은강의 정말로 감사드리며 듣고있습니다. 현재 한번 완강을하고 복습중에 있습니다. 그런데 문제가 발생하여 질문드립니다. 자바로 설정하는 부분에서 ServletAppContext에 @PropertySource 와 @Value를 사용하여 properties파일의 값을 읽어오려하는데 null값이 들어갑니다. 프로퍼티 파일에는 이렇게 값이 들어가있고 ServletAppContext에는 이렇게 @PropertySource와 @Value를 이용해 설정했습니다. 그 뒤에, 이런식으로 값을 찍어보았는데, 이런식으로 널값이 나오게됩니다. 프로퍼티 파일의 주소는 /WEB-INF/properties/db.properties입니다. 혹시몰라서, 다른 컨트롤러에도 해봤는데요. 이런식으로 메인컨트롤러에다가 찍어보았습니다. 그러자 이런식으로 메인 클래스에서는 값을 잘 받아옵니다. 구글링을 통해 여러가지 방법을 시도해봤지만, 아직 해결되지않은 상태입니다. 해결방법과 이런 문제가 생겼을 때 어떻게 해결방법을 찾을 수 있는지 알려주시면 감사하겠습니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
ServletAppContext.java 오류 질문이요..
이 2가지 오류때문에 미칠 것 같습니다.. 강의자료에 있는 강사님 소스를 그대로 붙여봐도 똑같습니다.. 대체 뭐가 문제일까요??
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
@ModelAttribute
예 /abc 실행할때 @ModelAttribute("good") UserBean good 이렇게 리퀘스트영역에 객체가 저장되어 전송되서 jsp파일에서 사용하고 form태그를 이용하여 데이터를 /abc_pro 로 넘길때 @ModelAttribute("good") UserBean good 여기서 이게 /abc에서 만든 객체의 주소값이랑 같은지 아니면 새롭게 다시 만들어져 /abc에서 넘긴 데이터값이 주입이 되는지 햇갈려서 문의드립니다
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
로그아웃
로그아웃시 loginUserBean.setUserLogin(false); 이렇게하고 세션영역에 데이터도 같이 지울려면 어떻게 해야되나요?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
Source HTML 파일은 어디서 다운로드 받을 수 있을까요 ?
전혀정보가 없네요 Source HTML 파일은 어디서 다운로드 받을 수 있을까요 ?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
톰캣 8.0 쓰니까 컴파일이 안되는데 8.0 설정좀 알려주실수 있으신가요?
영상처럼 컴파일해서 실행되려면 9.0을 써야하는거 같은데 8.0은 안되는거 같더라구요 혹시 8.0 pom.xml 소스코드 알수 있을까요? 왜냐하면 회사에선 보통 톰캣 구버전을 쓴다고 들은기억이 있어서 8.0버전에 맞게끔 셋팅하고 싶습니다.
- 해결됨윤재성의 만들면서 배우는 Spring MVC 5
40강 미니프로젝트
미니프로젝트 html 파일들은 어디서 다운로드 받을수 있나요 ?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
문의
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <c:set var="root" value="${pageContext.request.contextPath }/" /> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>미니 프로젝트</title> <!-- Bootstrap CDN --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script> </head> <body> <c:import url="/WEB-INF/views/include/top_menu.jsp" /> <div class="container" style="margin-top: 100px"> <div class="row"> <div class="col-sm-3"></div> <div class="col-sm-6"> <div class="card shadow"> <div class="card-body"> <form:form action="${root }board/modify_pro" method="post" modelAttribute="modifyContentBean" enctype="multipart/form-data"> <form:hidden path="content_idx" /> <form:hidden path="content_board_idx" /> <div class="form-group"> <form:label path="content_writer_name">작성자</form:label> <form:input path="content_writer_name" class="form-control" readonly="true" /> </div> <div class="form-group"> <form:label path="content_date">작성날짜</form:label> <form:input path="content_date" class="form-control" readonly="true" /> </div> <div class="form-group"> <form:label path="content_subject">제목</form:label> <form:input path="content_subject" class="form-control" /> <form:errors path="content_subject"/> </div> <div class="form-group"> <form:label path="content_text">내용</form:label> <form:textarea path="content_subject" class="form-control" rows="10" style="resize:none" /> <form:errors path="content_text" style="color:red" /> </div> <div class="form-group"> <label for="board_file">첨부 이미지</label> <c:if test="${modifyContentBean.content_file != null}"> <img src="${root }upload/${modifyContentBean.content_file}" width="100%" /> </c:if> <form:input path="upload_file" type="file" class="form-control" accept="image/*" /> </div> <div class="form-group"> <div class="text-right"> <form:button class="btn btn-primary">수정완료</form:button> <a href="${root }board/read?board_info_idx=${board_info_idx}&content_idx=${content_idx}" class="btn btn-info">취소</a> </div> </div> </form:form> </div> </div> </div> <div class="col-sm-3"></div> </div> </div> <c:import url="/WEB-INF/views/include/bottom_info.jsp" /> </body> </html> -------------------- controller 부분 @PostMapping("/modify_pro") public String modify_pro(@Valid @ModelAttribute("modifyContentBean") ContentBean modifyContentBean , BindingResult result) { if (result.hasErrors()) { return "board/modify"; } return "board/modify_success"; } -------------------------- bean 부분 @NotBlank private String content_subject; @NotBlank private String content_text; ---------------------------- 여기서 오류 검사 체크를하면 이런식으로 내용창에 오류메시지가 나오고 제목에는 안나오고 또 제목과 내용창에 ,,(이렇게 쉼표가 계속 찍힙니다,) 왜그런건지 몰라서 도움요청드립니다 60강 글수정하기
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
질문
@GetMapping("/modify") public String modify(@RequestParam("board_info_idx") int board_info_idx, @RequestParam("content_idx") int content_idx, @ModelAttribute("modifyContentBean") ContentBean modifyContentBean , Model model) { model.addAttribute("board_info_idx", board_info_idx); model.addAttribute("content_idx", content_idx); ContentBean readContentBean = boardService.getContentInfo(content_idx); modifyContentBean.setContent_writer_name(readContentBean.getContent_writer_name()); modifyContentBean.setContent_date(readContentBean.getContent_date()); modifyContentBean.setContent_subject(readContentBean.getContent_subject()); modifyContentBean.setContent_text(readContentBean.getContent_text()); modifyContentBean.setContent_file(readContentBean.getContent_file()); modifyContentBean.setContent_writer_idx(readContentBean.getContent_writer_idx()); modifyContentBean.setContent_board_idx(readContentBean.getContent_board_idx()); modifyContentBean.setContent_idx(readContentBean.getContent_idx()); return "board/modify"; } 여기서 contentbean 객체를 하나 생성해서 modelattribute의 modifyContentBean 객체에 set해서 다시 넣어 줬는데 혹시 바로 modelattribute의 modifyContentBean 객체 modifyContentBean = boardService.getContentInfo(content_idx); 이런식으로는 왜안되는지 알고 싶습니다 해보니까 결과값들이 비어있는채로 나오더라구요
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
error_message.properties 한글 적용 후 화면에서 한글깨짐현상 발생합니다..
error_message 적용 전에는 한글이 깨지지 않았는데요, 적용 후 위 이미지와 같이 한글이 깨져서 나오네요.. 여러 검색하면서 utf-8 설정은 다 해준 거 같은데요,,, 해결 못해서 질문 올립니다ㅠㅠ 참고로, 자바 버전입니다. https://github.com/DevLimK1/MiniBoard-Spring.ver github에 코드 올린 것 링크 걸어둘게요,,!
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
context root가 RestfulAPI로 계속 나오네요..
Context root 설정을 다르게 변경해줘도 계속 RestfulAPI라고 나옵니다... web.xml이나 pom.xml 이름 변경 해줘야하는 부분은 다 변경해주었는데도 왜 저렇게 나오는걸까요..어디를 또 확인해봐야할까요??
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
이미지 소스 경로
선생님 안녕하세요. 정말로 좋은강의 잘 듣고 있습니다. 현재 58강 글 읽는 페이지 구성하기 강의를 듣고 있는데요. 여기서 저장된 이미지를 읽을때 <img src="${root }upload/${readContentBean.content_file}" width="100%"/> 이렇게 해서 이미지소스를 불러왔는데요. 그럼 /MiniProjectJava/upload/1599547766526_이미지.jpg에서 이미지 소스를 불러온다는 건데 저번에 알려주신 이미지 파일이 저장되는 경로는 제 컴퓨터 기준 D:\springMVC\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MiniProjectJava\resources\upload 입니다. 어떻게 위의 저 경로 (img src="${root }upload/${readContentBean.content_file}")에서 이미지를 불러 올 수 있는 것인지 궁금합니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
커스텀태그 파일 올린주소에요
https://github.com/Youngjoon-Park/new0531
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
jstl게속 못읽네요
버전 xml로 환경다시 붙여도 안되니 ....쩝 별의별 방법 다해도 안되네요
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
자꾸 이 에러가 뜨네요 계속찾아봐도 원인을 잘 모르겠습니다
근본 원인 (root cause) org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in ServletContext resource [/WEB-INF/config/servlet-context.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'mapperlocations' of bean class [org.mybatis.spring.SqlSessionFactoryBean]: Bean property 'mapperlocations' is not writable or has an invalid setter method. Did you mean 'mapperLocations'? org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1736) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1444) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:860) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:702) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:668) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:716) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:591) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:530) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:170) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) 근본 원인 (root cause) org.springframework.beans.NotWritablePropertyException: Invalid property 'mapperlocations' of bean class [org.mybatis.spring.SqlSessionFactoryBean]: Bean property 'mapperlocations' is not writable or has an invalid setter method. Did you mean 'mapperLocations'? org.springframework.beans.BeanWrapperImpl.createNotWritablePropertyException(BeanWrapperImpl.java:243) org.springframework.beans.AbstractNestablePropertyAccessor.processLocalProperty(AbstractNestablePropertyAccessor.java:426) org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:278) org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:266) org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:97) org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:77) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1732) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1444) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:860) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:702) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:668) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:716) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:591) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:530) org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:170) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source)mapperloacations 가 문제 인 것 같은데정확한 원인을 찾기가 힘든 거 같습니다도줌 주시면 감사하겠습니다