2013-06-26 2 views
0

org.postgresql.Driver를 사용하기 위해 log4j로 뮬 앱을 구성 중입니다. 아래는 내 log4j.properties 설정 중 일부입니다.뮬 앱이 log4j에 대한 postgres 드라이버 클래스를로드하지 않는 이유는 무엇입니까?

log4j.appender.postgres=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.postgres.layout=org.apache.log4j.PatternLayout 
log4j.appender.postgres.driver=org.postgresql.Driver 
log4j.appender.postgres.URL=jdbc:postgresql://127.0.0.1:5432/edus-esb 
log4j.appender.postgres.user=<username> 
log4j.appender.postgres.password=<password> 
log4j.appender.postgres.sql=INSERT INTO LOGS VALUES('%x','%d','%C','%p','%m') 

로그에 따르면 log4j 구성의 모든 것이 드라이버를 제외하고로드됩니다.

log4j:ERROR Failed to load driver 
java.lang.ClassNotFoundException: org.postgresql.Driver 

나는 아래의 종속성을 사용하여 해당 드라이버를로드 받는다는을 사용하고 있지만, 나는 또한 이클립스를 통해 클래스 경로에 수동으로 드라이버를 추가하는 시도했습니다 -> 경로를 구축 -> 외부 항아리를 추가합니다.

<dependency> 
    <groupId>postgresql</groupId> 
    <artifactId>postgresql</artifactId> 
    <version>9.1-901.jdbc4</version> 
</dependency> 

어느 경우에도 행운이 없습니다. 이전에 뮬 프로젝트에서 클래스를로드하는 데 어려움을 겪었으므로 이것이 뮬의 특정 클래스로드 전략/구현과 관련이 있는지 궁금합니다.

아이디어가 있으십니까? 감사.

답변

3

Mule 독립형 인스턴스에 응용 프로그램을 배포 할 때이 오류가 발생합니까?
그런 경우 해당 클래스가 들어있는 jar 파일을 독립 실행 형 인스턴스의 lib/boot에 복사하십시오.

+0

감사합니다. Seba. 저는 현재 Mule Studio에서 일하고 있습니다. lib 디렉토리에 부트 디렉토리를 추가하려고 시도했지만 드라이버는 포함되었지만 운이 없었습니다. 나는 또한 기존의 lib/shared /와 lib/shared/default 디렉토리에서 드라이버를 삭제하려고 시도했다. 아직 아무것도. Mule Studio와 관련없는 독립형 서버에 배포 할 수는 있지만 Studio에서 작동하지 않는 이유는 아닙니다. – GarySharpe

+0

Ahhhh, 당신이 말하는 뮬/부트 디렉토리를 발견했습니다. 원래는 Studio에 배포 된 Eclipse 작업 공간 아래의 .mule/lib 디렉토리에서 찾고있었습니다. 내가 그것을 보지 못했을 때 나는 그것을 창조하려고 노력했다. 결국 Eclipse 설치 (plugins \ org.mule.tooling.server.3.4.0.ee_3.4.0.201305131832 \ mule \ boot)에서 플러그인 디렉토리 아래에있는 디렉토리를 찾았습니다. 나는 거기에 드라이버를 추가하고 그것은 효과가! 감사! 이제는 공식 문서에 문서화되어 있는지 궁금합니다. – GarySharpe

+1

맞습니다. Studio 라이브러리를 가져 오는 위치에서 알 수있는 좋은 포인터는 다음과 같이 실행하는 것입니다. ps ax | grep Studio. ~에 관해서는 – Seba