getconnection forname example drivermanager conexion java sql-server sql-server-2008 java-ee

java - forname - jdbc sql server connection string



no sqljdbc_auth en java.library.path (5)

1) Descargue el controlador JDBC here .


2) descomprima el archivo y vaya a sqljdbc_version / fra / auth / x86 o / x64
3) copie el sqljdbc_auth.dll en C: / Archivos de programa / Java / jre_Version / bin
4) Finalmente reiniciar eclipse.

Tengo una aplicación web Java EE que se conecta a una instancia de SQL Server 2008. No tengo ningún problema para conectar y recuperar todas mis tablas, excepto una de ellas. El error en el registro de Tomcat es:

ADVERTENCIA: Error al cargar la causa sqljdbc_auth.dll: - no sqljdbc_auth en java.library.path


Acabo de encontrar el mismo problema pero dentro de mi propia aplicación. No me gustó la solución con copiar el dll ya que no es muy conveniente, así que investigué un poco y encontré la siguiente solución programática.

Básicamente, antes de hacer cualquier conexión al servidor SQL, debe agregar el sqljdbc_auth.dll a la ruta ... lo que es fácil de decir:

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

una vez que sepas cómo hacerlo:

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); } } }

Ahora la autenticación de integración funciona como un encanto :).

Créditos a https://.com/a/21730111/1734640 por dejarme resolver esto.


Aquí están los pasos si desea hacer esto desde Eclipse:

1) Cree una carpeta ''sqlauth'' en su unidad C: y copie el archivo dll sqljdbc_auth.dll en la carpeta

1) Ir a Ejecutar> Ejecutar configuraciones

2) Elija la pestaña '' Argumentos '' para su clase

3) Agregue el siguiente código en los argumentos de VM :

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

4) Pulsa "Aplicar" y haz clic en "Ejecutar".

Siéntete libre de probar otros methods .


El error es claro, ¿no es así?

No ha agregado la ruta donde está presente sqljdbc_auth.dll. Averigüe en el sistema donde se encuentra el archivo DLL y agréguelo a su classpath.

Y si eso tampoco funciona, agregue la carpeta donde está presente el archivo DLL (asumo / Microsoft SQL Server JDBC Driver 3.0 / sqljdbc_3.0 / enu / auth / x86) a su variable PATH.

Nuevamente, si va a través de ant o cmd, debe mencionar explícitamente la ruta usando -Djava.library.path = [ruta a MS_SQL_AUTH_DLL]