SmartFoxServer (SFS)の「サーバー側拡張機能」を作成しています。ログインスクリプトで、JDBCを使用してMS SQL Serverに接続する必要があります。デバッグ環境でJDBCコードをテストしましたが、正常に動作します。
だが
サーバー側の拡張機能をSFSの「extensions」フォルダーに(仕様に従って)入れると、com.Microsoft.sqlserver.jdbc.SQLServerException
:
「このドライバーは統合認証用に構成されていません。」.
このエラーをGoogleで検索したところ、通常はファイルsqljdbc_auth.dll
はシステムパスにありません。このファイルをシステムパスのフォルダーにコピーしましたが、まだ機能しません!
他の提案はありますか?
プロセッサアーキテクチャ(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プロセスが開始された環境を調べてみてください。
Windows認証統合セキュリティを使用する場合
sqljdbc_4.0/enu/auth/x64/sqljdbc_auth.dllをコピーします
Java/jre7/bin およびto
Java/jre7/lib
この後、youjはデータツールでデータベースをプルするために休止状態ツールに接続できるはずです。
JREフォルダーに.dllファイルを配置:-
私も同じ問題に直面していました。その後、オペレーティングシステムに応じてsqljdbc_auth.dll(x86またはx64)をJREフォルダー(jre7/bin/file.dll)に配置し、application.jarを実行します完璧に働きました。これは私のために働いた、これもあなたに役立つかもしれないこれを試すことができます:)
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)フォルダーに移動します。