No suitable driver found for jdbc:jtds

889 views Asked by At

I am stuck with a simple java netbeans-maven project.

My program need to write back some data into SQL Server database. The operation can be successfully if I run the program from NetBeans directly, it works as I expected.

But if I build the JAR file then run from outside of the dev environment the insert SQL sequence always get exception back (the rest of the program where I use normal jdbc driver for querying works properly):

The exception is:

No suitable driver found for jdbc:jtds:sqlserver://server:1433;user=user;password=password;integratedSecurity=true;encrypt=true;trustServerCertificate=true;ssl=require;

I tried to add the sqljdbc_auth.dll into Sys32, and build all the dependencies again, and add the jtds driver into windows classpath, without any luck.

Can you add me some type of guidance/help how the problem can be eliminate and run the code properly without the dev environment? Thanks

Here is the pom xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>Group</groupId>
    <artifactId>ContainerArrival</artifactId>
    <version>0.9</version>
    <packaging>jar</packaging>   
      <build>
    <plugins>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <shadedArtifactAttached>true</shadedArtifactAttached>
                <transformers>
                    <transformer implementation=
                      "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>something.ContainerArrivalFrame</mainClass>
                </transformer>
            </transformers>
                <filters>
        <filter>
            <artifact>*:*</artifact>
            <excludes>
                <exclude>META-INF/*.SF</exclude>
                <exclude>META-INF/*.DSA</exclude>
                <exclude>META-INF/*.RSA</exclude>
            </excludes>
        </filter>
    </filters>
        </configuration>
        </execution>
    </executions>
</plugin>
    </plugins>
  </build>

    <dependencies>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>8.4.1.jre8</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.jtds</groupId>
            <artifactId>jtds</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>2.3.2</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.2</version>
</dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>15</maven.compiler.source>
        <maven.compiler.target>15</maven.compiler.target>
    </properties>
</project>
1

There are 1 answers

0
gambrus On

Thanks all the help, I found the issue and It looks works for now. The issue was that the Class.forName("net.sourceforge.jtds.jdbc.Driver"); method was not defined properly.