2013-01-20 4 views
0

Tomcat7의 로컬 Windows7 환경에서 잘 실행되는 Java 응용 프로그램이 있습니다. 나는 리눅스 환경에서 이것을 생산에 넣으려고 노력하고있다. 내 응용 프로그램이 DB에 액세스하려고 시도 할 때를 제외하고는 모든 것이 완료되었으며 정상적으로 작동합니다. DB가 관련되지 않은 작업이라면 제대로 작동합니다. 내가 할 오류는이 클래스는 바람둥이 - dbcp.jar의 일부입니다ClassNotFoundException : BasicDataSourceFactory

java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory 

입니다. 이것은 $ CATALINA_HOME/lib 폴더에 있습니다. 왜 아직도 집어 들지 않는거야? 도와주세요!

업데이트 : .jar 파일을 열고 확인했습니다. org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.class 파일이 있습니다.

+0

'CATALINA_HOME'이 맞습니까? – Cratylus

+0

꽤 많이 ... $ CATALINA_HOME을 echo했을 때 나는 그것을 설치 한 tomcat 디렉토리의 경로를 얻었습니다. /installables/apache-tomcat-7.0.35 다른 방법으로 확인할 수 있습니까? –

+1

클래스 경로 어딘가에 복제본이있을 수 있습니까? –

답변

2

마침내 깨뜨릴 수있었습니다. 내 실수 - 그 위치를 확인하기 위해 echo $ CATALINA_HOME에만 의존했습니다. 이것이 오도 할 수 있다고 밝혀졌습니다. 이 catalina.base 및 가리키는 catalina.home 찾아 오는 출력에서 ​​

ps aux | grep catalina 

를 사용하는 것이 좋습니다. 이 변수 앞에 주어진 경로는 Tomcat 라이브러리를 가져 오는 경로입니다. 나는 기본 설치를했고/usr/share/tomcat7 아래에서 libs를 발견했다. 결국, yum을 사용하여 수행 된 기본 설치는 tomcat-dbcp.jar 파일을 제공하지 않았습니다. 대신 commons-dbcp.jar를 제공했습니다. tomcat-dbcp vs commons-dbcp

usr/share/tomcat7 폴더 아래의 lib 파일을 변경하면 sudo bash를 사용해야합니다. 또한/usr/share/tomcat7 아래의 lib 폴더가 simlink라는 것을 알 수 있습니다. 그냥/usr/share/tomcat7 -l 명령을 실행하여 부모 위치를 얻으십시오. 부모 위치에서만 변경할 수 있습니다. 마지막으로/usr/share/tomcat7 자체에서 선택되는 server.xml에 대해서도 비슷한 사항을 확인할 수 있습니다.

이 모든 것을 관리하는 가장 좋은 방법은 처음으로 여러 위치로 이동하는 것에 대해 신경 쓸 필요가 없도록 자신 만의 심 링크를 만드는 것입니다.

도움을 주신 모든 분들께 감사드립니다.

관련 문제