전체 글 793

DefaultHandler 와 우선순위.

보통 DipatcherServlet의 매핑경로를 / 으로 처리하면 .jsp를 제외한 모든 경로를 처리하게 된다. 이는 즉 .~~~ 등 여러가지 확장자를 전부 DipatcherServlet이 처리한다는 뜻이 되는데, 모든 경로에 대한 Mapping 을 하는 것도 가능하나 이것은...사실상 불가능하다고 본다. @EnableWebMvc 가 설정해주는 HadlerMapping 객체는 @Controller 에노테이션이 붙어 있는 Bean 객체가 처리할 수 있는 요청경로에만 대응할 수 있다. 따라서 받아 낼 수 없는 경로는 자연히 404Error 를 송출하게 된다. 그러다보면 DefaultHandler를 이용하는 것을 생각하게 되는 듯 하다. @EnalbeWebMvc 에노테이션 적용 객체는 WebMvcConfigu..

springframework 2020.08.09

JavaConfig 에 대한 WAS Exception Handling

자바 설정으로 한번 시험을 해보았다. throwExceptionIfNoHandlerFound 이 먹는지에 대하여서 그렇다. public class WebXmlConfig extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class[] getRootConfigClasses() { return new Class[]{RootConfig.class}; } @Override protected Class[] getServletConfigClasses() { return new Class[] {WebMvcConfig.class}; } @Override protected String[] getServletMappings()..

springframework 2020.08.09

The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler

출처는 역시 Stackoverflow. 해당 에러는 말그대로 DispatcherServlet 설정에 컨트롤러를 실행하는 HandlerAdapter..객체가 해당 handler=controller에 필요하다. 라는 이야기 같은데. 대부분 개발자의 @Controller 에노테이션이나, @RequestMapping 경로 설정 실수로 보인다. 마음이 급하던 바보인 내가 무슨 일을 했냐면.. @Controller(value = "/sample/*") @Log4j public class SampleController { @RequestMapping(value = "/file") public void uploadFile(ArrayList files) { files.forEach( f -> { log.info("fil..

Exception 2020.08.09

WAS 가 던지는 에러페이지 핸들링.

springframe work 에서 Server 에러는 @ExceptionHandler로 컨트롤할 수 있으나, WAS 내부에서 뿌려지는 에러에 대해서는 따로 설정이 필요하다. 첫 시도는 이거였다..Web.xml에 디스패쳐 서블릿 설정에서 해당 파라미터를 true 로 주고 @ExceptionHandler 에서 NoHandlerFoundException.class 를 잡아 사용하려고 했던 것이다. 하지만 아무리 경로를 다르게 주어도 작동하지 않았다. 그렇게 삽질이 시작됬다. throwExceptionIfNoHandlerFound true stackoverflow를 찾아 본 결과(내가 이걸 읽고 있을 줄이야, 공시 공부가 도움이...많이 됬다.) 해석하며 따라가본 결과, RequestMappingHandler..

springframework 2020.08.09

Java를 시작한지 139일차, 블로그를 만든 건 135일차.

스프링 공부를했다, 하고 싶은 공부를 하니, .음 좋다. 큰 감흥은 들지 않는데, 그냥 하게 된다. 하고 싶은 공부...음...잊는게 참 아쉽다, 누구나 그렇겠지만은 ㅎ. 그래서 새로운 책을 보고 다시 복습하고 지식을 보강하면서 의심되는 점이나 모르겠는 점을 찾으면 기존에 보던 스프링 기본서의 붙여 적어 놓은 INDEX 를 훑으며 모르는 점을 찾아다니고 그런다. 스프링, 설정도 배울것도 참 많다. 그래서 알게 가득하다.

생각모음 2020.08.09

Spring Legacy Project 서블릿 스펙 3.1로 업그레이드.

공부하던 도중, Servlet 3.x 버전대에서 는 기본적으로 업로드되는 파일을 처리할 수 있는 기능이 추가된다는 것을 보고나서 그럼 스프링 프레임워크에서의 Servlet Spec 은 어떻게 관리되며 어떻게 업그레이드 할 수 있을까. 하는 고민에 자료를 찾아보았다. 1. JDK -> 1.8 Perferences 의 Installed JREs 에서 JDK 추가 ( 1.8 ) 2. 프로젝트의

springframework 2020.08.09

Java를 시작한지 138일차, 블로그를 만든 건 134일차.

프로젝트를 하는 동안에...재밌다. 몸은 고되도 이것저것 해보고 싶은 것들을 하고 꾸미다보면 시간가는 줄을 모르게 되니까.. 체력이 모자란게 한이긴한데, 어꺠가 깨질 것 같은 느낌을 받았는데 살면서 처음이라 놀랬다. 진통제를 먹고 열심히 하고 돌아가니 지하철에서 어깨가 서서히 아파오더라, 이러면서 글을 적고 있으니 난 도대체 뭔지.. 싶은 생각도 든다. 재미있음 됬지..한다. 놀라운...? 발상이고 생각이다 싶다. 내가 언제 이래봤나..싶고. 줄여야겠다.

생각모음 2020.08.07

java.sql.Connection 사용 주의 사항. MySQL Connector/J is closed.

java.sql.SQLException:Connection 1116805717, URL=jdbc:mysql://localhost/h_project serverTimezone=Asia/Seoul, UserName=root@localhost, MySQL Connector/J is closed. 트랜젝션에서 커넥션이 도중에 닫혔거나, 롤백이나, 커밋 스테이트먼트가 로직 상 잘못 설계되었을 때 발생한다. 해당 오류가나면, 메서드의 트랜젝션 범위에서 디버깅을 하며 커넥션이 끊기지는 않는지, 롤백이나 커밋을 할때 문제가 나지는 않는지를 꼭 확인해야한다.

Exception 2020.08.07

Java를 시작한지 137일차, 블로그를 만든 건 133일차.

프로젝트를 진행 중이다. 열심히..열심히 하는데, 음, 사실 모르겠다. 하루 종일 컴퓨터만 바라봐서, 누가 무엇을 어떻게하는지 모르겠고, 고민을 하며 구현해 보고 싶은 것을 요리조리 생각하고 있을 뿐이다. 사실 신경쓸 시간도 없고...음, 프로젝트 때문에 스프링 은 책..을 보며 만족 중이다. 직접 타이핑을 해보고 싶은데..하며 책을 보며 만족을 할 뿐이다. 음..스프링 공부하고 싶다.

생각모음 2020.08.06