问题描述
我已经下载了this answer中引用的jtds驱动程序,然后在sql Developer中将其设置为第三方JDBC驱动程序。我创建了与本地运行的Sybase服务器的连接并对其进行了测试。连接测试成功!太棒了!
当我尝试打开连接以开始工作时,出现以下错误,有人知道如何解决吗?
java.lang.NullPointerException
at oracle.javatools.db.jdbc.JdbcDDLDatabase.registerBuilders(JdbcDDLDatabase.java:443)
at oracle.javatools.db.AbstractDatabase.<init>(AbstractDatabase.java:127)
at oracle.javatools.db.AbstractDatabase.<init>(AbstractDatabase.java:79)
at oracle.javatools.db.ddl.DDLDatabase.<init>(DDLDatabase.java:60)
at oracle.javatools.db.jdbc.JdbcDDLDatabase.<init>(JdbcDDLDatabase.java:61)
at oracle.javatools.db.sybase.AdaptiveServerDatabaseImpl.<init>(AdaptiveServerDatabaseImpl.java:21)
at oracle.javatools.db.sybase.anywhere.AdaptiveServerAnywhereDatabaseImpl.<init>(AdaptiveServerAnywhereDatabaseImpl.java:18)
at oracle.javatools.db.sybase.AdaptiveServerDatabaseFactory.createDatabaseImpl(AdaptiveServerDatabaseFactory.java:33)
at oracle.javatools.db.DatabaseFactory.createDatabaseImpl(DatabaseFactory.java:316)
at oracle.javatools.db.DatabaseFactory.createDatabase(DatabaseFactory.java:286)
at oracle.jdeveloper.db.DatabaseConnections.getDatabase(DatabaseConnections.java:656)
at oracle.dbtools.raptor.utils.Connections$ConnectionInfo.getDatabase(Connections.java:284)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1180)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1166)
at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:83)
at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:38)
at oracle.dbtools.raptor.navigator.db.BaseConnectionNode.getConnection(BaseConnectionNode.java:91)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode.getobjectFactory(DatabaseTreeNode.java:90)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:145)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:119)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:199)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:702)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Suppressed: java.sql.sqlException: TDS Protocol error: Invalid packet type 0xc
at net.sourceforge.jtds.jdbc.Tdscore.nextToken(Tdscore.java:2486)
at net.sourceforge.jtds.jdbc.Tdscore.getNextRow(Tdscore.java:805)
at net.sourceforge.jtds.jdbc.jtdsResultSet.next(jtdsResultSet.java:611)
at net.sourceforge.jtds.jdbc.jtdsResultSet.close(jtdsResultSet.java:503)
at oracle.javatools.db.jdbc.JdbcDDLDatabase.registerBuilders(JdbcDDLDatabase.java:467)
... 27 more
Caused by: net.sourceforge.jtds.jdbc.ProtocolException: Invalid packet type 0xc
at net.sourceforge.jtds.jdbc.Tdscore.nextToken(Tdscore.java:2475)
... 31 more
解决方法
我能够设置连接配置文件,从SQL Developer的Sybase连接并选择没有问题。
使用了jtds-1.3.1.jar驱动程序。
SQL Developer版本17.x
尝试该组合,看看它是否对您有用。
驱动程序源: http://jtds.sourceforge.net