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类路径。