maven webappにsqlserver42.jarを追加しようとしています。クラスはMaven Webアプリケーションのjarファイルからロードされません
私は、マイクロソフトのWebサイトからsqljdbc42.jarをダウンロードし、私は、次のコマンドを実行し、ここで
Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0
を与えられたプロセスに従いました。
mvn install:install-file -Dfile=sqljdbc42.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc42 -Dversion=4.2.0 -Dpackaging=jar
それは私のローカルリポジトリにjarファイルを追加し、私はすでにプロパティで「sqljdbc.version」に値を与え、それ私のプロジェクトのpom.xmlに以下の
<dependency>
<groupId>com.microsoft.sqlserver.jdbc</groupId>
<artifactId>sqljdbc</artifactId>
<version>${sqljdbc.version}</version>
</dependency>
を含ま適切な値に解決されました。 mavenプロジェクトを更新し、 "mvn clean install"を実行した後、私はプロジェクトのmaven依存関係のjarファイル(Eclipse内)を見ることができました。
今、私は、Webアプリケーションを実行しようとすると、その瓶からドライバクラスを選択することができず、私は次の例外をのgettinています:
ます。java.sql.SQLException:見つかりませんでした、適切なドライバjdbc:sqlserver://datawh.database.windows.net:1433; database = datawh; user = username @ datawh; password = password; encrypt = true; trustServerCertificate = false; hostNameInCertificate = .database.windows.net; loginTimeout = 30 at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:270) at com.sprt.rest.dao.AccidentDAOImpl.li stAllAccidents com.sprt.rest.controller.AccidentController.listAllAccidentsでcom.sprt.rest.service.AccidentServiceImpl.listAllAccidentsで(AccidentDAOImpl.java:184) (AccidentServiceImpl.java:34) (AccidentController.java:43) でsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) でsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) ...... *
私は自分のアプリケーションのために生成されたwarファイルをチェックし、私はまた、WEB-INF/libの下sqljdbc42-4.2.0瓶が
利用可能であることに気づきました私はローカルリポジトリ内のjarファイルをmavenのない別の単純なJavaアプリケーションで使用し、ドライバクラスを選択することができました。私のMaven Webアプリケーションで何が間違っていますか?
私のwebappsには、私はデータベース
JDBCに接続するために使用しています
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.b2b.rest</groupId>
<artifactId>b2b-restapi</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>b2b-restapi Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<java-version>1.8</java-version>
<springframework.version>4.3.1.RELEASE</springframework.version>
<jackson.version>2.7.5</jackson.version>
<servlet.version>3.1.0</servlet.version>
<log4j.version>1.2.17</log4j.version>
<hibernate.version>4.2.0.Final</hibernate.version>
<springfox.version>2.5.0</springfox.version>
<sqljdbc.version>4.2.0</sqljdbc.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc42</artifactId>
<version>${sqljdbc.version}</version>
</dependency>
</dependencies>
<build>
<finalName>b2b-restapi</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat8-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
接続文字列のpom.xml:のSQLServer://datawh.database.windows.net:1433;データベース= datawhを; user = username @ datawh; password = password; encrypt = true; trustServerCertificate = false; hostNameInCertificate = *。database.windows.net; loginTimeout = 30
私はSQLサーバーに接続しようとしていないDBが、私はMicrosoft Azure SQL Warehouseに接続しようとしています
参照:http://stackoverflow.com/questions/5616898/java-sql-sqlexception-no-suitable-driver -found-for-jdbcmicrosoftsqlserverデータベースを変更する必要があります= databaseName = – DaveRlz
こんにちは..ご意見ありがとうございます。私は自分のデータベースに接続するために使用している接続文字列を共有していないことに気付きました。これは今質問で更新され、SQLサーバーDBではなくAzure SQL Warehouseに接続していることに注意してください。同じjarがコアJavaアプリケーション(Mavenなし)から接続するために使用されています。 – user2123507
私はAzureに精通していませんが、私はここにあります:https://msdn.microsoft.com/en-us/library/ms378422%28v=sql.110%29.aspxあなたが使用しているドライバはJava8以降です - あなたはどのバージョンを使用していますか? – DaveRlz