sql >> Database >  >> RDS >> Sqlserver

Native Library sqljdbc_auth.dll al geladen in een andere classloader

Elke webapplicatie heeft zijn eigen Classloader (ze isoleert). Wanneer u de methode Class.forName() aanroept, is er een statisch blok dat probeert de gedeelde bibliotheek (dll-bestand) te laden - dus beide web-apps proberen de gedeelde lib te laden, vandaar de foutmelding wanneer de tweede probeert te laden.

De JDBC-jar die je hebt voor sqlserver moet worden verplaatst van een bundel met je wars naar de tomcat 7.0/lib map en kopieer de sqljdbc_auth.dll naar de map tomcat/bin - op deze manier komt het in de tomcat parent classloader en wordt de klasse maar één keer geladen.

|----------------------------------|
| sqljdbc*.jar     --> tomcat*/lib |
|----------------------------------|
| sqljdbc_auth.dll --> tomcat*/bin |
|----------------------------------|


  1. Wat doet DELIMITER // in een trigger?

  2. Hoe numerieke typen uit MySQL te halen met PDO?

  3. Hoe de functie POSITION() werkt in MySQL

  4. MAAND() Voorbeelden in SQL Server (T-SQL)