Microsoft SQL Server 데이터베이스 에서 데이터를 가져와이를 MySQL 데이터베이스에 푸시하는 프로젝트를 clojure로 빌드하려고합니다.MySQL 및 SQLServer를 사용하는 프로젝트에 대한 uberjar 만들기
이 프로젝트는 lein 실행을 사용하여 잘 실행,하지만 난 leiningen를 사용 uberjar 로 패키지 및 Java -jar을 사용하여 실행하면 실패 : 스레드 "주요"자바
예외입니다. sql.SQLException : JDBC에 대한 찾을 수 없습니다 적합 드라이버 : SQLSERVER .... 내가 MySQL 데이터베이스와 SQL Server 데이터베이스를 모두 사용하려고 할 때
에만이 오류가 발생합니다. 그 중 하나만 사용하는 경우 jar 파일 은 java -jar를 사용하여 정상적으로 실행됩니다. 다음과 같이
내 project.clj은 다음과 같습니다
(defproject sqlserver-clojure "1.0.0-SNAPSHOT"
:description "A minimal example of the MySQL/SQLServer conflict"
:dependencies [[org.clojure/clojure "1.4.0"]
[com.microsoft/sqljdbc4 "3.0"]
[clojureql "1.0.4"]
[mysql/mysql-connector-java "5.1.6"]]
:main sqlserverclojure.core)
우버 - 항아리는 악마입니다. 'META-INF'에서 특정 자원이나 항목을 복사하지 않거나 악화 시키십시오 (예 : META-INF/services/java.sql.Driver가 다른 내용을 가진 모든 JDBC 4 호환 드라이버에 있음) –
JDBC를 사용하기 전에 응용 프로그램의 어딘가에서'Class.forName ("driver.class.Name")'을 사용하여 JDBC 드라이버를로드하는 "클래식"메소드로 항상 넘어갑니다. 또는 DriverManager.getConnection() 대신에'DataSource' 객체를 사용할 수 있습니다. – millimoose
@millimoose'META-INF/services/java.sql.드라이버 '는 단지 예일뿐입니다. 예를 들어, 다른 필수 리소스가 복사되지 않았기 때문에 드라이버의로드가 여전히 실패 할 수 있습니다 (클래식 메소드 또는 데이터 소스를 사용하는 경우에도) –