월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
validate 충돌
게시글 작성 notblank와 수정 notblank가 충돌합니다 ㅠㅠ Field error in object 'updateBbsBean' on field 'bbsContent': rejected value []; codes [NotBlank.updateBbsBean.bbsContent,NotBlank.bbsContent,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [updateBbsBean.bbsContent,bbsContent]; arguments []; default message [bbsContent]]; default message [공백일 수 없습니다] Field error in object 'updateBbsBean' on field 'bbsTitle': rejected value []; codes [NotBlank.updateBbsBean.bbsTitle,NotBlank.bbsTitle,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [updateBbsBean.bbsTitle,bbsTitle]; arguments []; default message [bbsTitle]]; default message [공백일 수 없습니다]] 그래서 이러한 오류가 뜨네요 ..
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
경로설정질문!
강사님. 상대경로 절대경로 말씀하실 때 질문이 생겨서요! 그럼 controller에서도 /contextpath/main이라고 적어줘야하는거 아닌가요? 아 그리구 c:import할때도 /WEB-INF전에 컨텍스트패스를 써줘야되는거 아닌가요..? 혹시 Homecontroller의 value="/"이 의미하는게 contextpath인가요? 전에 강의 다시 봤는데 스프링에서는 컨텍스트패스 뒤에 경로만 설정해주면 되는건가요?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
StandardServletMultipartResolver
StnadardServletMultipartResolver를 multipartResolver가 아닌 다른 이름으로 정의하면 NullPointerException이 뜨는데 왜이런건가요?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
49강 restcontroller질문
아이디 중복확인 처리중 return chk + ""; 이부분에서 + "" 을 붙이는 이유가 무엇인가요?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'modifyBean' available as request attribute 오류 질문
여기서 modifyBean은 선생님의 modifyUserBean과 같습니다. 다시 본론으로 들어와 선생님의 프로젝트를 반복해서 따라하는 과정에서 java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'modifyBean' available as request attribute 이러한 오류가 발생했습니다. RootAppContext에서 @Bean("modifyBean") public UserBean modifyBean() { return new UserBean(); } 를 정의하고 컨트롤러에서 @Resource(name="modifyBean") private UserBean modifyBean; 로 주입받으면 오류가 해결되기는 하나 교수님은 별도의 주입 없이도 modify.jsp가 실행됬는데 왜 그런지 궁금합니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
Xml 프로젝트에서의 @Lazy 작성 여부
(강의시간 기준으로 00:20:00과 01:01:10입니다.) Xml 프로젝트에서는 Bean을 활용할 때마다 @Lazy를 작성해야 하는걸로 알고있습니다. Xml 프로젝트일 경우 서버가 가동될 때 @Autowired 또는 @Resource가 있다면 최초의 요청없이 무조건 Bean을 주입하려고 시도하고 이때, 오류가 발생하기 때문에 @Lazy를 작성해주는걸로 알고있습니다. Xml 프로젝트의 BoardController.java에서 @Autowired private BoardService boardService; @Resource(name = "loginUserBean") @Lazy private UserBean loginUserBean; boardService에 @Lazy가 없는 이유와 loginUserBean에는 왜 @Lazy가 있는지 차이에 대한 정확한 이유를 잘 모르겠습니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
톰캣 8.5에서는 실행 불가능한가요??
실행 시키려고 하는데 버튼이 비활성화 되어 실행할 수가 없네요ㅠㅠ
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
오류 질문있습니다.
https://drive.google.com/file/d/1SVf4ZY2fI4HCOkErXckM5ifBjKVFqD-o/view?usp=sharing Java 프로젝트는 잘 실행지만 xml 프로젝트는 오류가 뜨는데 잘 모르겠습니다.. 링크에 압축폴더로 첨부하였습니다. 타입 예외 보고 메시지 서블릿 [appServlet]을(를) 위한 Servlet.init() 호출이 예외를 발생시켰습니다. 설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다. 예외 javax.servlet.ServletException: 서블릿 [appServlet]을(를) 위한 Servlet.init() 호출이 예외를 발생시켰습니다. org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) 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:374) 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.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:832) 근본 원인 (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:130) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) 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:542) 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:374) 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.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:832) 근본 원인 (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:321) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) 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:1307) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) 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:542) 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:374) 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.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:832) 근본 원인 (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:372) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeanByName(AbstractAutowireCapableBeanFactory.java:453) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:527) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:239) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) 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:1307) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) 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:542) 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:374) 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.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:832) 근본 원인 (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:360) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeanByName(AbstractAutowireCapableBeanFactory.java:453) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:527) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:497) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:650) org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:239) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:318) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) 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:1307) org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) 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:542) 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:374) 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.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:832) 비고 근본 원인(root cause)의 풀 스택 트레이스를, 서버 로그들에서 확인할 수 있습니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
@Lazy 질문있습니다.
안녕하세요! request scope 관련 질문있습니다. TestController.java에서 DataBean들을 선언할 때는 @Lazy를 작성 여부 관련입니다. 서버가 최초 실행될 때에는 요청이 없음에도 불구하고, Bean을 주입하려고 하기 때문에 xml 방식에서는 이를 오류로 인식하지만(그래서 @Lazy를 작성), 반면에 Java 방식에서는 이를 오류없이 흘려 보내는걸로(@Lazy를 작성하지 않음) 이해했는데 맞을까요??
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
messageJava 프로젝트만 Run on Server 했을 때 톰캣 서버가 나오지 않습니다
(사진)
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
자바 프로젝트 → XML 프로젝트 변환 질문
이전까지 잘 해왔는데 마지막 메인화면에서 복사 붙여 넣기를 하는 과정에서 HTTP 404 오류가 납니다 .ㅜㅜ 다시 붙여 넣어봐도 안되서 제공해주신 소스코드를 붙여 봐도 그래도 HTTP 404 오류가 나네요 ㅠ 아래 주소는 제 XML 프로젝트 구글 드라이브 주소입니다 https://drive.google.com/file/d/1G9UkiZcyr1xiFzsF1mfJ6RiYW-t28LfR/view?usp=sharing
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
오전에 사진업로드 질문한 사람입니다.
업로드 폼이 브라우저 마다 다르다고 하셔서 지금까지 이클립스에서 작업하던걸 멈추고 크롬으로 했더니 정상 작동 했습니다. 정말로 감사합니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
사진 업로드 질문
저는 선생님이 주신 소스코드를 그대로 붙여 넣어 봐도 write.jsp에서 같은 모양의 폼이 나오질 않습니다 . 그리고 업로드를 하였을때 사진파일의 주소 때문에 업로드가 안되는거 같은데 어떻게 해결해야 하나요 ㅠ ?
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
다이나믹웹프로젝트 와 레거시프로젝트
안녕하세요 강사님 항상 좋은 강의 감사합니다. 공부하다 궁금한게 있어 질문드립니다. 다이나믹웹프로젝트 와 레거시프로젝트 의 차이가 무엇인지, 다이나믹을 레거시로 바꿀수? 있는지도 궁금합니다. 감사합니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
board_info_idx 관련된 400에러 코드
HTTP 상태 400 – 잘못된 요청 타입 상태 보고 메시지 Required int parameter 'board_info_idx' is not present 설명 클라이언트 오류로서 인지된 어떤 문제로 인하여, 서버가 해당 요청을 처리할 수 없거나, 처리하지 않을 것입니다. (예: 잘못된 요청 문법, 유효하지 않은 요청 메시지 framing, 또는 신뢰할 수 없는 요청 라우팅). Apache Tomcat/9.0.36 에러 코드이구요 url 확인해보면 read?뒤에 값들은 잘 들어오는데 board_inf_idx에서 %20이 붙기는 하네요. 디비 연결도 잘 되고 디비에 저장도 됩니다. 글쓰기 누를시에 이렇게 에러가 뜨는데 이유를 모르겠습니다 requestparam 부분에서 board_info_idx를 못받아왔나 싶어서 확인해도 잘 들어가 있는거 같구요 ㅠㅠ 도와주시면 감사하겠습니다. 컨트롤러 소스 입니다. @GetMapping("/read") public String read(@RequestParam("board_info_idx") int board_info_idx, @RequestParam("content_idx") int content_idx, Model model) { model.addAttribute("board_info_idx", board_info_idx); ContentBean readContentBean = boardService.getContentInfo(content_idx); model.addAttribute("readContentBean", readContentBean); return "board/read"; } @GetMapping("/write") public String write(@ModelAttribute("writeContentBean") ContentBean writeContentBean, @RequestParam("board_info_idx") int board_info_idx) { writeContentBean.setContent_board_idx(board_info_idx); return "board/write"; } @PostMapping("/write_pro") public String write_pro(@Valid @ModelAttribute("writeContentBean") ContentBean writeContentBean, BindingResult result) { if(result.hasErrors()) { return "board/write"; } //이 빈에는 새로 작성된 idx값이 들어오게 된다. (nextval로 한개가 증가된 상태) boardService.addContentInfo(writeContentBean); return "board/write_success"; } 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/write_pro' method='post' modelAttribute="writeContentBean" enctype="multipart/form-data"> <form:hidden path = "content_board_idx"/> <div class="form-group"> <form:label path="content_subject">제목</form:label> <form:input path="content_subject" class='form-control'/> <form:errors path='content_subject' style='color:red'/> </div> <div class="form-group"> <form:label path="content_text">내용</form:label> <form:textarea path="content_text" class="form-control" rows="10" style="resize: none"/> <form:errors path='content_text' style='color:red'/> </div> <div class="form-group"> <form:label path="upload_file">첨부이미지</form:label> <form:input type="file" path='upload_file' class="form-control" accept="image/*"/> </div> <div class="form-group"> <div class="text-right"> <form:button class='btn btn-primary'>작성하기</form:button> </div> </div> </form:form> </div> </div> </div> <div class="col-sm-3"></div> </div> </div> 서섹스 소스입니다. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var = 'root' value='${pageContext.request.contextPath }/'/> <script> alert('저장되었습니다') location.href = '${root}/board/read?board_info_idx =${writeContentBean.content_board_idx}&content_idx=${writeContentBean.content_idx}' </script>
- 해결됨윤재성의 만들면서 배우는 Spring MVC 5
글을 수정할 때 유효성 검사에 걸린 상태에서 취소를 누르면 400에러가 뜹니다.
글 수정 화면에서 제목, 내용 값을 비우고 수정완료 버튼을 클릭하여 유효성 검사에 걸린 후 페이지 소스 보기로 확인해본 결과 <a href="/MiniProjectJava/board/read?board_info_idx=&content_idx=" class="btn btn-info">취소</a> 이렇게 취소버튼에 걸린 링크에 파라미터 값이 비어있는데 어떻게 해결해야될지 몰라 질문드립니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
메이븐프로젝트 업데이트시 아파치 톰켓 오류
선생님이 주신 prom.xml을 붙여 넣기 한 후에 메이븐 프로젝트 업데이트시 아파치 톰켓 라이브러리가 자동삭제되는데 왜그런건가요 ??
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
servlet.xml 오류 문의입니다!
왜 오류가 나는 것인지 모르겠습니다 ㅠ
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
RequestScope 요청이 발생할 때
안녕하세요. 질문이 있습니다. @RequestScope로 정의시 요청이 발생할 때 Bean객체가 생성되어 자동주입이라고 적혀있는데요. 요청이 발생할 때 부분을 모르겠습니댜. 현재 어느부분이 요청이 발생한 부분인가요? Forward방식으로 리턴을 하고 있기 때문에 여기서는 새로운 요청이 아닌 것으로 이해하고 있습니다.
- 미해결윤재성의 만들면서 배우는 Spring MVC 5
문의
min = ((currentPage -1) / paginationCnt ) * paginationCnt + 1 위의 코드처럼 min 값 구할때 이렇게가 맞는거라고 문의했는데 ((currentPage - 1) / contentPageCnt) * contentPageCnt + 1 이렇게 페이지당 보여질 개수로 해도 상관없지않나요? 어차피 10개로 나누고 곱하는건 같은데 제가 이해가안되서 정리한번 부탁드립니다