J'essaie de connecter la base de données SQL Server à l'aide de l'authentification Windows à partir de mon application à l'aide du pilote JTDS, mais j'ai eu la suite d'erreur p>
SSO a échoué: bibliothèque SSPI natif non chargé. Vérifier le java.library.path Propriété du système. P> blockQuote>
Voici les scénarios où j'ai essayé de résoudre mais que quelque chose est toujours manquant. P>
- J'ai ajouté NTLMAuth.dll dans le répertoire système et ça fonctionne bien pour SQL Server 2005. LI>
- Mais la même chose que j'ai essayée pour SQL Server 2008 R2 et Denali, mais cela me donne la même erreur que celle mentionnée ci-dessus li>
- aussi j'ai considéré un peu je veux dire que j'ai copié ntlmauth.dll à partir de x64 \ sso \ chemin dans le répertoire système. Li> ol>
Je suis confus pourquoi cela ne fonctionne pas pour SQL Server 2008 R2 et Denali. P>
3 Réponses :
Essayez en plaçant le fichier Assurez-vous de faire correspondre la "bitness" (32 bits ou 64 bits) de la DLL avec la bitness JVM. P>
J'ai rencontré le même problème à l'aide de SQL Server Express 2008 R2 et de ce Article de forum MSDN SQL Server recommandé cette résolution, qui a fonctionné pour moi. P> ntlmauth.dll code> dans le dossier code> bac de votre environnement d'exécution Java (par exemple,
C: \ Program Files \ Java \ jre7 \ bin code>). p>
Une chose facile à manquer est s'il y a une inadéquation entre la taille du mot de la JVM et la bibliothèque. Donc, si vous exécutez un Java 32 bits et que vous avez une DLL 64 bits, il ne se charge pas.
En plus de la mettre dans votre jre directement, vous pouvez également spécifier simplement le Le répertoire ci-dessus contiendrait alors le java.library.path code> comme tel:
ntlmmauth.dll code> fichier p> p>
En plus de la réponse de Dechrist, je devais ajouter le même fichier DLL dans le dossier bin code> de
C: \ Program Files \ Java \ jdk1.8.0_91 \ jre \ bin code> aussi. Dans ce cas, cela a fonctionné pour moi. P>
Cela me ressemble plus à un commentaire qu'une réponse complète.
J'ai essayé de faire un commentaire mais je n'ai pas assez de réputation i>. Comme je le vois, je ne peux que le faire dans mes propres réponses pour le moment.