2017-08-07 13 views
0

私が作成したAzure SQLデータベースに接続しようとするSpringブートプロジェクトがあります。私はそれを試してみました。com.microsoft.sqlserver groupIdの下でsqljdbc4を使用していましたが、起動するたびにセキュリティエラーが発生しました。そして、私はそれをインストールし、私はもうそのエラーを持っていない今の依存spring-bootとazure SQLサーバの接続に関する問題

<dependency> 
     <groupId>com.microsoft.sqlserver</groupId> 
     <artifactId>slqjdbc6</artifactId> 
     <version>6.2.1</version> 
    </dependency> 

を設定する代わりに、私はorg.springframework.beans.factory.UnsatisfiedDependencyExceptionています。エラーの名前を持つBeanを作成する「org.springframework.bootを.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration ':コンストラクタパラメータ0で表現されている満足度の低い依存関係。ネストされた例外はorg.springframework.beans.factory.BeanCreationExceptionです:クラスパスのリソース[org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration $ Tomcat.class]で定義された 'dataSource'という名前のBeanを作成中にエラーが発生しました: ;ネストされた例外はorg.springframework.beans.BeanInstantiationExceptionです:[org.apache.tomcat.jdbc.pool.DataSource]のインスタンス化に失敗しました:ファクトリメソッド 'dataSource'が例外をスローしました。ネストされた例外はjava.lang.IllegalStateExceptionです:.m2下com.microsoft.sqlserver.jdbc.SQLServerDriver

依存

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.microsoft.sqlserver</groupId> 
     <artifactId>slqjdbc6</artifactId> 
     <version>6.2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

application.properties

spring.h2.console.enabled=true 
spring.h2.console.path=/console 
spring.datasource.platform=h2 

# production profile 
spring.datasource.url=jdbc:sqlserver://spring-boot-intro.database.windows.net:1433;database=spring-boot-intro;[email protected];password=*my password*;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30; 
spring.datasource.username=fabio 
spring.datasource.password=*my password* 
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver 

# crud 
spring.jpa.hibernate.ddl-auto=create-drop 

slqjdbc6:ドライバクラスをロードできません。リポジトリ

C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\maven-metadata-local.xml 
C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\6\_remote.repositories 
C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\6\slqjdbc6-6.2.1.jar 
C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\6\slqjdbc6-6.2.1.pom 

答えて

1

宛先yそのドライバをインストールしますか? SQL ServerドライバはパブリックMavenリポジトリでは使用できません。したがって、依存関係を追加したプライベートMavenリポジトリを持っていなければ、pom.xmlを含めて実行時にjdbcドライバを入手することはできません。

JDBCドライバを追加するプライベート/企業のMavenリポジトリがない場合は、ソースコード内にjarファイルを追加し、そのファイルを参照するためにfilesystemリポジトリを使用することをお勧めします。

あなたの問題を解決するための二つの方法を試してみて、そのようなリポジトリMaven: add a dependency to a jar by relative path

+0

「slqjdbc6」ドライバを手動でインストールする必要がありました。これらは「C:¥Users¥* user *¥。m2¥repository¥com¥microsoft¥sqlserver¥slqjdbc6¥6」にインストールされます。投稿の末尾にパスを追加しました – MrSir

+1

これは非常に移植性の高い方法ではありません。それぞれのユーザーがそれを行う必要があります。 ' com.microsoft.sqlserver' ' MSSQL-JDBC' ' 6.2.1.jre8' と同じではありません。しかし、どちらの方法は、あなたがあなたのファイルで参照バージョンがあることに注意してくださいあなたのローカルリポジトリに入れました。アーティファクトとバージョンの両方があなたのファイルシステムに書いたものと一致しません – Ben

+0

私は複数のウィンドウを使用していたので間違ったpomを投稿しました。私は正しいものを編集しました。それはネットビーンズから正しく取られました。なぜなら、私が何かを変えれば、バージョン番号だけでも、私にはエラー**が表示されます。いくつかの依存性成果物はローカルリポジトリ**にはありません。 – MrSir

0

を作成する方法の詳細については、この答えを参照することができます。 @Benが言ったように

  1. pom.xmlファイルにmssql-jdbcドライバーの依存関係を追加し、Mavenの中央を経由して、それをインストールするには、ドキュメントDownload Microsoft JDBC Driver for SQL ServerのセクションUsing the JDBC Driver with Maven Centralを参照してください。

  2. または、上記のドキュメントのリンクからMS SQL Server JDBCドライバのjarファイルをダウンロードできます。次に、コマンドmvn install:install-file -Dfile=mssql-jdbc-6.2.1.jre8.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=mssqljdbc6 -Dversion=6.2.1を実行して、ローカルのmavenパスにmaven依存関係を手動でインストールし、以下の依存関係の内容をpom.xmlに追加します。

    <dependency> 
        <groupId>com.microsoft.sqlserver</groupId> 
        <artifactId>mssqljdbc6</artifactId> 
        <version>6.2.1</version> 
    </dependency> 
    

それがお役に立てば幸いです。