본문 바로가기

Programing

(387)
[tomcat] 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 증상 org.apache.jasper.servlet.TldScanner.scanJars 13-Nov-2020 13:26:40.105 정보 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다. 아래 블로그를 참고한다. javacan.tistory.com/entry/decrease-tomcat-startup-time-by-skip..
[tomcat] ARP 경고 해결하기 tomcat 으로 가동되는 프로젝트를 로컬에서 사용하게 되었다. 아래와 같은 문구가 계속 마음속에 걸렸다. 정보 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [/Users/namo/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.] 결국 java.library.path 상 APR 라..
[spring] JSR-303 과 @Valid 과 @Validated Controller 에서는 요청바디에 대해서는 @Valid 라는 annotation을 붙이면 Bean Validation(JSR-303)기능을 수행해준다. 하지만 @PathVariable 에 대해서는 적용이 불가능하다. 만약 bean validation 을 통해 하고자 한다면 @Validated 을 Controller 클래스(타입)에 붙여주면 동작을 한다. @Valid의 경우 바인딩이 실패가되면 MethodArgumentNotValidException 을 발생시킨다. 하지만 @Validated 로 바인딩 validation 실패가 발생하면 ConstraintViolationException 예외가 발생하였다. javax.validation.ConstraintViolationException: null a..
[spring] URL path template에서 매핑된 값 구하기 인터셉터를 구현하다보니 URL 요청에서 template로 매핑된 부분의 값을 구할 필요가 있었다. 아래 코드에서 thisValue에 해당하는 부분이다. @GetMapping("/i/wanna/{thisValue}/really") public SomeResponse getSomeHanlder(@PathVariable String thisValue) { // ... 어떻게 구할까 고민을 하다가 @PathVariable 를 처리하는 PathVariableMethodArgumentResolver 에서 힌트를 얻을 수 있었다. package org.springframework.web.servlet.mvc.method.annotation; public class PathVariableMethodArgumentRes..
[spring] ServletWebRequest 생성 package org.springframework.web.servlet.mvc.method.annotation; public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter implements BeanFactoryAware, InitializingBean { @Nullable protected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod) throws Exception { ServletWebRequest webRequest = new ServletWebRequ..
[Spring] Controller & RequestMapping : RequestMappingInfo AbstractAutowireCapableBeanFactory # createBean → doCreateBean → initializeBean → invokeInitMethods → (InitializingBean) afterPropertiesSet RequestMappingHandlerMapping # afterPropertiesSet AbstractHandlerMethodMapping # afterPropertiesSet → initHandlerMethods → processCandidateBean → if (isHandler(beanType)) → detectHandlerMethods → getMappingForMethod RequestMappingHandlerMapping # getMappingF..
[Java] 지역변수 이름과 죄수번호...? 자바관련 카페에 올라온 질문. 질문 String str = null; 이 상태는 str이 객체를 참조하지 않고 스택영역에 str변수 이름으로 null값이 세팅되었다면 String name = ""; 이 상태는 힙영역에 빈 공간으로 객체가 생성되고 주소 번지가 스택영역에 리턴이 되는건지요.. 슬기로운 감빵생활과 자바 자바에서 지역변수의 이름은 런타임시에 어떻게 될까. 첫 코드에서 str 이라는 이름의 변수 이름은 계속 남아 있을까? tvN에서 했던 슬기로운 감빵생활을 보면서 나는 자바의 지역변수와 유사한 점이 많다고 생각했다. 사회에서 '김제혁'이라고 불리던 이름이 형무소에 가면서 '7102'라는 죄수번호라는 신원을 구별하는 번호로 바뀐다. 자바코드에서는 존재하던 변수이름은 컴파일이 되면서 비슷하게 숫자로..
[Spring] org.springframework.dao 예외 클래스 org.springframework.dao 패키지 하위의 예외 클래스를 리스트업 해보았다. 5.2.4 기준이로 일부는 빠져있을 수 있다. 가장 상위가 되는 예외는 DataAccessException 이다. 아래에는 크게 3가지 카테고리로 나눌 수 있다. NonTransientDataAccessException: Root of the hierarchy of data access exceptions that are considered non-transient where a retry of the same operation would fail unless the cause of the Exception is corrected. RecoverableDataAccessException: Data access ex..