텍스트 삭제
ctl + u: 현재부터 그 줄 처음까지 지우기
alt + backspace: 현재 위치부터 그 단어 앞까지 삭제(커서가 단어 맨 앞에 있다면 그 앞단어 삭제)
ctl + u: 현재부터 그 줄 처음까지 지우기
alt + backspace: 현재 위치부터 그 단어 앞까지 삭제(커서가 단어 맨 앞에 있다면 그 앞단어 삭제)
Eclipse에서 Dynamic Web Project에 Tomcat Server을 등록하여 작업하는 상황이었다.
Maven pom.xml에 lib로 들어있는 클래스의 상위 pom.xml에서 가져온 라이브러리에 대한 중복성을 줄이기 위해 현재 작업중인 프로젝트 pom.xml에서 중복된 lib를 삭제하고 Maven Update 후 Server Run 하였다.
이 때, 상위 lib에 들어있는 클래스를 못가져온다고 발생한 문제이다.
eclipse에 등록된 tomcat server안에 해당 lib가 없어서 발생한 문제였다.
eclipse project 탭에 build automatically가 체크되어있었음에도 잘 작동하지 않았던 듯 하다.
1. 문제 원인이 위와 같은지 확인하는 작업
Servers 탭의 등록된 tomcat server에서 마우스 오른쪽 클릭 -> Browse Deployment Location을 클릭
[Project 명] 폴더 > WEB-INF 폴더 > lib 폴더 > 필요한 lib가 존재하는지 확인한다.
2. 1번에서 필요한 lib가 없었다면
Servers 탭의 등록된 tomcat server에서 마우스 오른쪽 클릭 -> Clean Tomcat Work Directory 클릭
그래도 해결이 안되면
Servers 탭의 등록된 tomcat server에서 마우스 오른쪽 클릭 -> Clean 클릭
Caused by: java.lang.UnsupportedClassVersionError: (0) | 2020.11.20 |
---|---|
[CMD Java] CMD에서 class 파일 실행하기 (0) | 2020.11.06 |
[JSP] Only a type can be imported. (0) | 2020.08.20 |
Eclipse import 시 build path를 src/ 로 잡는 문제 해결 (1) | 2020.07.13 |
[Spring MVC] java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig (0) | 2020.06.22 |
Caused by: org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "${service-config의 특성 key}"
at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:77)
at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:54)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1085)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1059)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583)
... 31 more
Caused by: java.lang.NumberFormatException: For input string: "${service-config의 특성 key}"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.valueOf(Integer.java:766)
at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:208)
at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:113)
at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:470)
at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:443)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:200)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:126)
at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:61)
... 35 more
service-config.propertie의 내역을 ServiceConfig class로 불러 들여서 사용하는 상황이었고
해당 파라미터타입에 String, int가 있는 상황이었다.
context 파일이 applicaion-context.xml 와 servlet-context.xml 두가지가 있었는데
placeholder bean은 application-context.xml에 적혀있었는데
servlet-context.xml의 base 패키지 범위에도 ServiceConfig가 들어가서 servlet-context에서 bean으로 등록할 때 placeholder 부분을 빈 문자값 ""로 읽어 오게 되어서
int 에 변환 할 때 타입 변환 Exception이 떨어지게 된 듯하다.
servlet-context.xml 에서
변경 전
<context:component-scan base-package="com.text.spring" />
변경 후
<context:component-scan base-package="com.text.spring.web" />
base-package에 ServiceConfig가 들어가지 않도록 루트 경로를 잡아준다.
소스 폴더 안에 또다른 소스 폴더안에 갖을 수 없으므로 src/main/java를 생성하기 전에 src를 소스 폴더로 취급하지 않도록 Eclipse에 지시해야 합니다.
이를 수행하려면 src 폴더를 마우스 오른쪽 클릭 후 '빌드 경로' → '빌드 경로에서 제거'를 선택하면 된다.
이 src는 폴더 트리에 정상적인 위치에 표시되므로 그 아래에 기본 및 java 폴더를 작성하고 src/main/java폴더 구조를 만든 후에
마지막으로 새로 작성된 java 폴더를 마우스 오른쪽 단추로 클릭하고 빌드 경로 → '소스 폴더로 사용'을 선택하십시오.
이 후 Maven update 시
Cannot nest 'Foldername/src/main/java' inside 'Foldername/src'. To enable the nesting exclude 'main/' from..
과 같은 에러가 난다면
pom.xml에 가서 sourceDirectory가 src/main/java로 잡혀있는지 확인하고 그렇지 않을 시 변경해줍니다.