개발공작소
article thumbnail
728x90

 

 

 

 

JSP에서 JAVA로 isEmpty라는 메서드를 사용해서 true/false를 반환받는 로직을 수행하는데 아래와 같은 에러가 떴다.

 

※ 되도록이면 문제 해결방법2를 참고해서 해결하도록 하자.

 

 

에러상황 및 문제원인 파악

 

에러 이미지

 

박스 친 곳만 보면 되는데, 보면 뭐가 문제인지 바로 알 수 있다.

StringUtils라는 클래스에 isEmpty라는 메서드가 선언되어 있지 않다는 의미이다.

 

StringUtils 클래스를 import함

 

우선 StringUtils 클래스는 JSP 최상단에 위와 같이 import해온다.

그래서 실제로 isEmpt가 선언이 되어 있는지 확인을 하러 갔는데..

 

 

 

isEmpty를 아무리 찾아도 선언해주는 코드가 없다. 즉 선언되어 있지도 않은 메서드를 호출하니 에러가 발생하는 것..

 

 

 

문제해결 방법 1

 

 

org.springframework.util.StringUtils 대신 org.apache.commons.lang.StringUtils를 import해준뒤,

해당 StringUtils 클래스 안의 isEmpty 메서드를 사용하도록 하자.

 

<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

 

물론 메이븐 환경이기 때문에 pom.xml에 의존성을 추가해주는것도 잊지 말자.

 

 

참조링크 : The method isEmpty(String) is undefined for the type StringUtils

 

The method isEmpty(String) is undefined for the type StringUtils

When I am trying to use isEmpty(), I am getting the following error. The method isEmpty(String) is undefined for the type StringUtils I am using Java 7, Eclipse Juno. I manually added the Spring

stackoverflow.com

 

 

 

문제해결 방법 2

 

위의 글을 보면 알겠지만, 2013년에 쓴 글이다. 당시에는 org.springframework.util.StringUtils에 isEmpty 메서드가

없었지만 최신버전의 spring-core 라이브러리에서는 isEmpty 메서드를 선언해놨기 때문에

최신버전으로 업데이트를 하면 org.springframework.util.StringUtils에서도 isEmpty를 사용할 수 있다.

 

결론적으로 나는 spring-core 라이브러리가 최신버전이 아니었던 것.. ( 프로젝트를 default로 만들었는데.. )

 

 

<properties>
    <java-version>1.6</java-version>
    <org.springframework-version>4.3.6.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

 

spring-core의 버전을 명시하는 <properties>에 가서 버전을 올려주도록 하자. 4.3.6.RELEASE로 맞춰주면 된다.

물론 <properties>말고 직접 의존성을 추가해줘도 된다.

 

이렇게 라이브러리가 업데이트 된 것을 확인하면 StringUtils 클래스에 isEmpty 메서드가 추가 된 것을 확인할 수 있다.

 

 

 

 

 

위의 내용은 그냥 해당 메서드가 없어서 생긴 에러이다. 똑같은 에러가 아니더라도 비슷한 에러라면 위와 같은 방법으로

해결할 수 있으니, 비슷한 문제가 발생했을 때 해당 클래스에 가서 메서드가 있는지 없는 지 확인하고

해결할 수 있는 방안을 찾을 수 있도록 하자

 

 

 

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!