SQL Server JDBC中的“ NoClassDefFoundError:javax / xml / bind / DatatypeConverter”

约翰逊:

我最近切换到了intellij,但发现很难连接到我的localDB。相同的代码对日食很好。另外,我已经将sqljdbc42.jar添加为模块依赖项。

package com.enter;
import java.sql.*;

public class SqlConnect {
    private String username, password, url;
    public Connection conn;

    public SqlConnect() {
        username = "user=admin;";
        password = "password=admin";
        url = "jdbc:sqlserver://Bossman-PC\\SQL2014TRAINING;databaseName=EnterDB;";
        Connect();
    }
    public SqlConnect(String user, String pass) {
        username = user;
        password = pass;
        url = "jdbc:sqlserver://Bossman-PC\\SQL2014TRAINING;databaseName=EnterDB;";
        Connect();
    }

    public void Connect() { //Loads sql driver and creates a connection object with local database
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String connectionUrl = url + username + password;
            conn = DriverManager.getConnection(connectionUrl);
            System.out.println("Connected.");
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public Connection getConnection() {
        return conn;
    }


}

产生错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4098)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:678)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:252)
at com.enter.SqlConnect.Connect(SqlConnect.java:25)
at com.enter.SqlConnect.<init>(SqlConnect.java:12)
at com.enter.Login.makeConnection(Login.java:26)
at com.enter.Login.<init>(Login.java:16)
at com.enter.Execute.initLogin(Execute.java:14)
at com.enter.Execute.main(Execute.java:9)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
... 19 more

Process finished with exit code 1

任何帮助将不胜感激。我也尝试了重载的DriverManager.getConnection(url,user,pass)方法和同样的错误。

汤普森(Gord Thompson):

为了与Java 9+兼容,需要为jreXX版本后缀标识的Java版本使用6.4.0或更高版本。请使用低于或等于您的Java版本的最高版本)。


先前的答案

正如Microsoft在GitHub上指出的

当前,我们的驱动程序发布的Jars都不与JDK9兼容。

您可以切换到使用Java 8 JDK,也可以将Microsoft的开发代码从其“ JDBC4.3”分支合并到您的项目中,然后将其与Java 9 JDK一起使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NoClassDefFoundError:javax / xml / stream / XMLStreamException

无法使用Java 11运行JOOQ GenerationTool(NoClassDefFoundError:javax / xml / bind / annotation / XmlSchema)

我在哪里可以得到LIB文件import javax.xml.bind.DatatypeConverter;

生成ExtJS 6.5 Web应用程序:[ERR] javax / xml / bind / DatatypeConverter

NoClassDefFoundError:javax / xml / bind / UnmarshalException-Spring Security oauth2

Java:如何解决java.lang.NoClassDefFoundError:javax / xml / bind / JAXBException

Android中DatatypeConverter的替代方法

NoClassDefFoundError:javax.xml.bind.DatatypeConverter

线程“主”中的异常java.lang.ExceptionInInitializerError原因:javax.xml.bind.DataBindingException:javax.xml.bind.JAXBException

Sbt项目加载错误-“ java.lang.NoClassDefFoundError:javax / xml / bind / DatatypeConverter”

在SQL Server中读取XML数据

SQL表中的XML-SQL Server

Gradle JAXB WSDL任务失败,并出现java.lang.NoClassDefFoundError:javax / xml / bind / JAXBContext

带有NoClassDefFoundError的Android检查:javax / xml / bind / JAXBException

无法建立专案java.lang.NoClassDefFoundError:javax / xml / bind / JAXBException

SQL Server中的“用于Xml路径”

在SQL Server中解析多层XML

CXF中的javax.xml.bind.UnmarshalException

无法在SQL Server中打开xml

SQL Server中的XML列更新

在SQL Server中读取动态XML节点

使用 SQL Server 中的变量更新 xml

如何修复线程“main”中的异常 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

实例化休眠配置会引发错误:线程“main”中的异常 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

SQL Server xml 路径中的 XML 格式

javax/xml/bind/JAXBException

java.lang.NoClassDefFoundError: javax.xml.bind.DatatypeConverterImpl(初始化失败)

接受 SDK 许可时出现“java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema”

在 SQL Server 中解析 XML(使用数组)