urbug2
1k
2020-05-25 17:44:42
4
141

WEB-INF/lib 밑에 일부 jar라 로딩되지 않습니다...;;


tomcat에 web dynamic 프로젝트이고. lib 폴더에서 라이브러리를 관리하는 고적적인 웹환경입니다.
프로젝트끼리 링크가 되어 있는 것 말고 특이사항 없습니다.


그런데 라이브러리 폴더에서 일부 jar(log4jdbc4-1.2.jar)는 인식을 하고 일부는 못하고 있습니다.

컴파일 시점에는 발생하지 않습니다. 실행시점에서 발생합니다.. (java.lang.NoClassDefFoundError)

실행시점에 
이클립스가 생성한 카탈리나홈에 소스는 물론이고 라이브러리도 정확히 복사가 되어 있는 것을 확인하였고.
카탈리나 프로퍼티도 건드린적 없이 잘 있습니다. 그런데 왜 인식 못하는 jar가 있을까요?

어떤 다른 이유로 로딩이 안되는 경우도 있나요??

0
0
  • 답변 4

  • 컴포지트
    1k
    2020-05-25 17:51:59

    1. 해당 톰캣 환경을 구동하는 자바 버전이 해당 라이브러리보다 하위일 경우

    2. 해당 라이브러리가 요구되는 라이브러리가 없을 경우

    3. Catalina 홈이 다를 경우

    1
  • urbug2
    1k
    2020-05-25 19:06:05
    컴포지트 님 귀한 답변 감사합니다.

    1,3 은 여러번 확인했는데 이상이 없는 것 같습니다..


    의심하던데로 2번이 가장 유력한데...

    클래스로더로 해당 클래스를 존재유무를 확인하려고 하면 처음에는. (Class.forName(~~))
    java.lang.NoClassDefFoundError (org/slf4j/LoggerFactory)

    그 이후로는
    No such class : java.lang.NoClassDefFoundError (Could not initialize class net.sf.log4jdbc.DriverSpy)
    으로 바뀝니다..

    그런데 org/slf4j/LoggerFactory가 로딩되었는가를 확인해 보면...

    org.apache.catalina.loader.ParallelWebappClassLoader
    java.net.URLClassLoader
    sun.misc.Launcher$AppClassLoader
    sun.misc.Launcher$ExtClassLoader
    Bootstrap classloader

    jar:file:/C:/develop/20200525/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/PRISM_AML_RBA_M/WEB-INF/lib/slf4j-api-1.7.12.jar!/org/slf4j/LoggerFactory.class

    으로 정상적으로 로딩되어 있습니다..
    해당 라이브러리 이외에 의존성이 발생하는 가 싶어.. 메이븐으로 확인을 해보니.
    의존성 하나 있는 라이브러리가. slf4j-api-1.6 입니다.. 해당 jar는 위에서 엮여 있음을 확인했구요..



    0
  • 컴포지트
    1k
    2020-05-26 10:13:17

    JDBC 관련된 거라면 보통은 동적으로 클래스 호출하기 때문에 라이브러리 놓치기 쉽습니다. log4jdbc 라이브러리가 경로에 올바르게 있는지 확인해 보시길. 또한 jdbc에 연결하는 DB 드라이버 라이브러리도 확인해 보시길.

    버전 차이가 너무 커도 설계상 바뀌는 부분이 있을 수 있어서 오류날 수 있으니 버전도 확인해 보시길.

    1
  • urbug2
    1k
    2020-05-26 11:05:42

    이클립스 부터 전부 새로 깔아서 다시 해 본 결과 바로 잡기는 했습니다.

    제가 jre lib ext 폴더에 라이브러리 넣고 빼고를 반복하여 작업하기는 했었습니다.
    그 과정 중에 이클립스가 변경 후 반영이 바로바로 되지 않네요.

    이클립스 재기동 후 (-_-) 정상작동을 확인하였습니다..;;;;; 하.....

    컴포지트님 질문에 관심 감사합니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.