web-dev-qa-db-ja.com

JDBC SQLServerException:「このドライバは統合認証用に設定されていません。」

SmartFoxServer (SFS)の「サーバー側拡張機能」を作成しています。ログインスクリプトで、JDBCを使用してMS SQL Serverに接続する必要があります。デバッグ環境でJDBCコードをテストしましたが、正常に動作します。

だが

サーバー側の拡張機能をSFSの「extensions」フォルダーに(仕様に従って)入れると、com.Microsoft.sqlserver.jdbc.SQLServerException

「このドライバーは統合認証用に構成されていません。」.

このエラーをGoogleで検索したところ、通常はファイルsqljdbc_auth.dllはシステムパスにありません。このファイルをシステムパスのフォルダーにコピーしましたが、まだ機能しません!

他の提案はありますか?

29
Shaul Behr

プロセッサアーキテクチャ(x86/x64/ia64)ごとに異なるバージョンのsqljdbc_auth.dllがあります。 SFSサーバーでどちらを使用していますか?

SFSが実行されているJVMのアーキテクチャに一致するものを選択する必要があります。したがって、64ビットマシンで32ビットJavaを実行している場合、x64バージョンではなくx86バージョンが必要になります。

私は以前にSFSを使用したことがないので、ログをどこかに書き込むかどうかわかりません。存在する場合は、これらのログを調べて、何か役立つものが書き込まれているかどうかを確認する価値があります。

[〜#〜] edit [〜#〜]:SFSが64ビットJavaを使用していることを100%確信できないC:\ Program Files(x86)ではなく、C:\ Program Filesが不足するからです。

SFS docs の[はじめに]> [要件とインストール]に次の行があります。この行は、WindowsではなくLinuxにのみ適用されますが、Windows上のSFSも32ビットJavaを使用することを示唆する場合があります。

バージョン1.5以降、SmartFoxServerには独自のx86 32ビットSun Javaランタイムが付属しています。

Javaのどのバージョンがインストールされているかを簡単に判断する1つの方法は、フォルダー_C:\Program Files\Java_またはC:\Program Files (x86)\Javaのいずれかまたは両方が存在するかどうかを確認することです。もちろん、両方のフォルダーが存在する場合、それはあまり役に立ちません。

X64バージョンではなくsqljdbc_auth.dllのx86バージョンを使用すると、アプリケーションは機能しますか? x86 DLLで突然動作を開始する場合、SFSは32ビットJavaを使用している必要があります。

SFSの起動に使用されるバッチファイルはありますか?もしそうなら、それを読んで、SFSがJavaを実行している場所を指摘するのに役立つかもしれません。 PATHへの変更も確認してください。 Javaは_Java.library.path_システムプロパティでのみDLLをロードできます。Windowsでは、これはPATH環境変数の値に設定されます。

それでもSFSが32ビットまたは64ビットJavaのどちらを使用しているかを判断できない場合は、Process Explorerを使用して、SFSを実行しているJava.exeプロセスが開始された環境を調べてみてください。

16
Luke Woodward

Windows認証統合セキュリティを使用する場合

  1. Microsoftサイトからsqljdbc_6.0.8112.100_enu.exeをダウンロードします
  2. Exeをインストールします(Zipパスの指示を読んでください)
  3. sqljdbc_4.0/enu/auth/x64/sqljdbc_auth.dllをコピーします

    Java/jre7/bin およびto

    Java/jre7/lib

この後、youjはデータツールでデータベースをプルするために休止状態ツールに接続できるはずです。

12
Pavan

 JREフォルダーに.dllファイルを配置:-
私も同じ問題に直面していました。その後、オペレーティングシステムに応じてsqljdbc_auth.dll(x86またはx64)をJREフォルダー(jre7/bin/file.dll)に配置し、application.jarを実行します完璧に働きました。これは私のために働いた、これもあなたに役立つかもしれないこれを試すことができます:)

6
Mohammad Hani

Microsoftからjdbcドライバー(バージョン7.2)をダウンロードし、sqljdbc_auth.dllをC:\ Program Files\Java\jre\binおよびC:\ Program Files\Java\jdk\binフォルダーにコピーします。 Java 32-bit。を実行している場合、Program Files(x86)フォルダーに移動します。

0
CLU7CH3R