Java 在Idea J中添加新数据源

Java 在Idea J中添加新数据源,java,sql-server,intellij-idea,intellij-14,Java,Sql Server,Intellij Idea,Intellij 14,我正在使用Intelli J Idea Ultimate 2017.2IDE中的数据源和驱动程序对话框创建一个新的Microsoft SQL Server数据源 当我点击testconnection按钮输入所有所需值后,它会给出Failed消息,错误如下所示 java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter 位于jdk.internal.loader.BuiltinClassLoader.loadClass(Bui

我正在使用
Intelli J Idea Ultimate 2017.2
IDE中的
数据源和驱动程序
对话框创建一个新的
Microsoft SQL Server
数据源

当我点击
testconnection
按钮输入所有所需值后,它会给出
Failed
消息,错误如下所示

java.lang.ClassNotFoundException:javax.xml.bind.DatatypeConverter 位于jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) 位于jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:496) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4098) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123) 位于com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.connectioninternal(SQLServerConnection.java:1459) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773) 位于com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168) 位于com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27) 位于jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 位于jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:564) 在sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:355) 在sun.rmi.transport.transport$1.run(transport.java:200) 在sun.rmi.transport.transport$1.run(transport.java:197) 位于java.security.AccessController.doPrivileged(本机方法) 位于sun.rmi.transport.transport.serviceCall(transport.java:196) 位于sun.rmi.transport.tcp.tcpttransport.handleMessages(tcpttransport.java:567) 位于sun.rmi.transport.tcp.tcpttransport$ConnectionHandler.run0(tcpttransport.java:800) 位于sun.rmi.transport.tcp.tcpttransport$ConnectionHandler.lambda$run$0(tcpttransport.java:682) 位于java.security.AccessController.doPrivileged(本机方法) 位于sun.rmi.transport.tcp.tcpttransport$ConnectionHandler.run(tcpttransport.java:681) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 运行(Thread.java:844)(无堆栈跟踪)。 NoClassDefFoundError:javax/xml/bind/DatatypeConverter

我使用
sqljdbc42
驱动程序进行连接。我还将
CLASSPATH
环境变量设置为
sqljdbc42-4.2.jar
文件的位置


你知道可能出了什么问题吗

Microsoft JDBC驱动程序需要额外的依赖项,即
javax.xml.bind.api

这是需要添加到pom.xml中的maven依赖项:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

javax.xml.bind

并将其添加到IntelliJ类路径。

谢谢您的回复。我将此依赖项添加到pom.xml中,并将路径附加到CLASSPATH变量。但还是有同样的问题。还有什么我可以检查的吗?如果您将此依赖项添加到POM中,那么您的应用程序将正常工作。如果您想使用IntelliJ数据库,那么还需要将jar添加到IntelliJ类路径。