2012-10-15 2 views
2

웹 응용 프로그램을 개발 중이며 벽에 부딪혀 몇 가지 조언을 사용할 수 있습니다. 그래서이 응용 프로그램은 더 이상 우리 회사에없는 동료가 작성했습니다. 그들은 백 엔드에 자바와 자바 스크립트로 아파치 톰캣을위한 웹 애플리케이션을 작성했다. 응용 프로그램은 JDBC API를 사용하여 SQL Server 데이터베이스와 인터페이스합니다. 이 사람은 이클립스에서 모든 개발을하고 이런 방식으로 실행했다.WAR 파일을 사용하여 Tomcat에 배포하여 ClassNotFoundException을 발생했습니다.

나는이 웹 응용 프로그램을 가져 와서 서버로 옮기려고합니다. 필자는 Eclipse를 사용하여 WAR 파일을 내 보낸 다음 Tomcat webapps 폴더에이 파일을 배치하려고 시도했습니다. 그런 다음 Tomcat을 시작했을 때 프로그램이 추출되었습니다. 여태까지는 그런대로 잘됐다. 웹 사이트가 나타나서 잘 작동합니다. 그러나 데이터베이스 정보에 의존하는 페이지에 액세스하려고하면 NULL이 다가옵니다. 나는 톰캣 로그를 가서 다음과 같은 메시지가 출력 표준에 주어진 것을 발견

의 ClassNotFoundException : com.microsoft.sqlserver.jdbc.SQLServerDriver 나는 가정했다

을 WAR 파일 것 모든 종속성을 포함하지만 아마 이것이 사실이 아니라고 추측하고 있습니다. 누구든지 경험이 있다면, 무슨 일이 일어 났습니까? 만약 누군가가 알고 있다면, Eclipse에 이것을 알려주는 방법이 있습니까? 그렇지 않으면 내 옵션은 무엇입니까? 나는 자바 개발자가 아니므로 필요할 경우 JDBC를 설치하는 방법을 모른다.

도움을 주시면 감사하겠습니다. 마이크는

+0

JDBC 드라이버 jar가 설치되어 있지 않은 것 같습니다. tomcat의 lib 디렉토리에 있나요? 자신의 바람둥이에 설치 한 동료 일 수 있습니다. –

+0

war 파일을 빌드하는 데 사용하는 빌드 시스템은 무엇입니까? 개미/메이븐/다른 뭔가? – Vikdor

답변

0

"WARC> tomcat 시작"을 수동으로 수행 할 필요가 없으며 Eclipse가 Tomcat 설치에서 직접 배치를 수행하도록 구성하고 Tomcat 서버를 두 번 클릭 한 다음 "사용 서버 위치 "섹션에서"tomcat 설치 "를 참조하십시오. enter image description here

하지 않을 경우 압축을 풀고, here에서 다운로드, 응용 프로그램 (당신의 동료가 프로젝트 레이아웃의 이클립스 "동적 웹 프로젝트"를 사용하는 가정) 프로젝트 WebContent/WEB-INF/lib 디렉토리에 SQLServer에 JDBC 드라이버 (sqljdbc4.jar)가 포함되어 있는지 확인합니다 언급 된 폴더에 복사하면 다음에 Tomcat을 시작할 때 자동으로 추가됩니다.

프로젝트는 Maven 프로젝트 레이아웃 (프로젝트 루트 폴더에 pom.xml라는 이름의 파일이), 로컬 저장소에 종속성을 설치 following instructions을 사용을 사용하는 경우

(라이센스 및 재배포에 대한 메이븐와 마이크로 소프트 사이에 의견 차이가있다 드라이버가 없으므로 repo가 ​​없음)

1

당신은 Microsoft JDBC Driver download 페이지에 다음

  1. 이동을하고 JDBC 드라이버를 다운로드 위치에 설치할 수 있습니다.
  2. 7-zip 또는 winzip과 같은 zip 유틸리티를 사용하여 .war 파일을 엽니 다.
  3. 다운로드 한 JDBC 드라이버를 설치 한 sqljdb_4.0/enu 디렉토리에서 sqljdbc.jar을 복사하여 압축을 해제 한 war 파일 WEB-INF/lib에 붙여 넣으십시오.
  4. 다시 .war 파일로 압축하여 다시 배포하십시오.

이렇게하면 응용 프로그램이 실행됩니다. 영구적으로이 문제를 해결하려면 당신이 ANT 또는 Maven의 POM에 사용하는 경우의 build.xml에서 즉, 빌드 시스템에서, war 파일을 구축하는 동안

는, 당신은 당신 WEB-INF/libsqljdbc.jar를 포함 정지를 추가해야합니다. 이 특정 종속성에 대해 dependencies 섹션 아래 xml

+0

응답 해 주셔서 감사합니다. 이것은 내 DJBC 문제를 해결하는 것 같았습니다. 또한 4 단계와 관련하여 다른 사람들을 명확하게하기 위해 다음 명령을 사용하여 다시 "zar cf ../app.war *"명령을 사용했습니다. JDK가 경로에없는 경우 정규화 된 확장을 제공해야 할 수 있습니다. –

관련 문제