web-gelistirme-sc.com

java.library.path içinde sqljdbc_auth yok

Bir SQL Server 2008 örneğine bağlanan bir Java EE Web Uygulaması var. Bunlardan biri hariç tüm masalarıma bağlanma ve bağlantı alma konusunda herhangi bir sıkıntım yok. Tomcat günlüğündeki hata:

UYARI: Sqljdbc_auth.dll neden yüklenemedi neden: - Java.library.path içinde hiçbir sqljdbc_auth

24
AFF

1) JDBC Sürücüsünü İndirburada .


2) dosyayı açın ve sqljdbc_version\fra\auth\x86 veya \ x64 .__ 'ya gidin.
3) sqljdbc_auth.dll dosyasını C:\Program Files\Java\jre_Version\bin .__ dizinine kopyalayın.
4) Sonunda Eclipse'i yeniden başlatın

31
Amine Soumiaa

Bunu Eclipse'den yapmak istiyorsanız, aşağıdaki adımları uygulayın: 

1) C: sürücünüzde 'sqlauth' klasörü oluşturun ve dll dosyasını sqljdbc_auth.dll dizinine kopyalayın

1) Git Çalıştır> Konfigürasyonları Çalıştır

2) Sınıfınız için 'Arguments' sekmesini seçin

3) Aşağıdaki kodu VM bağımsız değişkenlerine ekleyin:

-Djava.library.path="C:\\sqlauth"

4) 'Uygula'yı tıklayın ve' Çalıştır'ı tıklayın. 

Başka bir şey denemekten çekinmeyin Methods

11
nanospeck

Hata açık, değil mi? 

Sqljdbc_auth.dll dosyasının bulunduğu yolu eklemediniz. DLL 'nin bulunduğu sistemde bunu bulun ve bunu sınıf yolunuza ekleyin.

Bu da işe yaramazsa, DLL öğesinin bulunduğu klasörü ekleyin (\ Microsoft SQL Server JDBC Sürücüsü 3.0\sqljdbc_3.0\enu\auth\x86 olduğunu varsayıyorum) PATH değişkeninize ekleyin.

Yine eğer karınca veya cmd üzerinden geçiyorsanız, açıkça -Djava.library.path = [MS_SQL_AUTH_DLL yolunu] kullanarak yolu belirtmeniz gerekir.

8
afrin216

Kolayca düzeltmek için şu adımları izleyin:

  1. goto: https://docs.Microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url#Connectingintegrated
  2. JDBC dosyasını indirin ve tercih ettiğiniz yere çıkartın
  3. oS x64 veya x86'nızla eşleşen auth klasörünü açın
  4. sqljdbc_auth.dll dosyasını kopyala 
  5. yapıştırın: C:\Program Files\Java\jdk_version\bin
  6. eclipse veya netbeans'i yeniden başlatın
2
jfindley

Ben de aynı problemle karşılaştım, ancak kendi başvurumda .. 

Temel olarak, SQL sunucusuyla herhangi bir bağlantı yapmadan önce, yoluna sqljdbc_auth.dll eklemeniz gerekir.

PathHelper.appendToPath("C:\\sqljdbc_6.2\\enu\\auth\\x64");

bir kere nasıl yapacağını bildiğin zaman:

import Java.lang.reflect.Field;

public class PathHelper {
    public static void appendToPath(String dir){

        String path = System.getProperty("Java.library.path");
        path = dir + ";" + path;
        System.setProperty("Java.library.path", path);

        try {

            final Field sysPathsField = ClassLoader.class.getDeclaredField("sys_paths");
            sysPathsField.setAccessible(true);
            sysPathsField.set(null, null);

        }
        catch (Exception ex){
            throw new RuntimeException(ex);
        }

    }

}

Şimdi entegrasyon kimlik doğrulaması bir cazibe gibi çalışır :).

Krediler https://stackoverflow.com/a/21730111/1734640 bu konuyu çözmeme izin vermek için.

1

Bunu çözmek için aşağıdakileri yaptım:

  1. sqljdbc_auth.dll dizine kopyalandı: C:\Windows\System32
  2. Başvurum yeniden başlatıldı
0
TedEd