java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.isBlank(Ljava/lang/String;)Z Error 

 

어쩌구 저쩌구 ...

 

나는 이 에러가

 

org.apache.commons.lang.StringJoin(Collection col , String split)

 

여기서 발생했다.

 

거의 하루를 날렸다.

 

왜냐면 정말 의심가던곳을 제거한 뒤에도 계속해서 라이브러리 충돌이 났기 때문이다.

 

나는 정말 maven쪽 라이브러리들이 정리가 안되어서 계속 나는줄 알았다.. =_=...

 

자료를 찾기가 조금 어려웠는데 아래에서 찾았다

 

https://m.blog.naver.com/PostView.nhn?blogId=ggangpark&logNo=60197948450&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

 

결론적으로 weblogic이 갖고 있는 commons-* 라이브러리들과

 

현재 내 프로젝트에 commons-* 라이브러리들이 충돌이 나는건데

 

weblogic의 기본설정은 자신의 commons-* 라이브러리를 우선순위로 잡고 프로젝트를 로딩한다.

 

이 우선순위를 바꿀 수 있는 weblogic.xml 설정이 바로 prefer-web-inf-classes 이다.

 

근데 prefer-web-inf-classes 을 true로 주었지만 나같은경우는 xml-apis랑 다시 충돌이 나는 현상이 있었다

 

그러다가 또 개삽질하고

 

아래와 같이 prefer-application-packages를 사용하여 특정 패키지만 우선순위로 두는것으로 해결했다.

<container-descriptor>
		<prefer-application-packages>
			<package-name>org.apache.commons.*</package-name>
		</prefer-application-packages>
</container-descriptor>	

 

아래는 oracle weblogic doc에 있는 내용이니 참고해도 좋을듯 하다

https://docs.oracle.com/cd/E13222_01/wls/docs90/programming/classloading.html#1082452

+ Recent posts