简体   繁体   English

ij工具正常运行Java代码时拒绝与Derby Database 10.11.1.1的连接

[英]Connection to Derby Database 10.11.1.1 being refused with ij tool working java code

Presently I have a Derby database... Version 10.11.1.1 Created via a Java app which is functional only when communicated to by the java app running arbitrary queries. 目前,我有一个Derby数据库...版本10.11.1.1是通过Java应用程序创建的,仅当运行任意查询的Java应用程序与之通信时,该功能才起作用。 Maven dependency as follows: Maven的依赖关系如下:

   <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>10.11.1.1</version>
   </dependency>

When I try to use the ij tool or any other third-party applications: 当我尝试使用ij工具或任何其他第三方应用程序时:

i.e. connect 'jdbc:derby:/home/username/dev/db-agents/TESTDB';

is unable to do so, complaining about the wrong version is being used, Like as follows: 无法这样做,抱怨使用了错误的版本,如下所示:

Caused by: java.sql.SQLException: Database at /home/username/dev/db-agents/TESTDB has an incompatible format with the current version of the software.  The database was created by or upgraded by version 10.11.
    at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
    at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    ... 12 more
Caused by: ERROR XSLAN: Database at /home/username/dev/db-agents/TESTDB has an incompatible format with the current version of the software.  The database was created by or upgraded by version 10.11.
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.impl.store.raw.log.LogToFile.readControlFile(Unknown Source)
    at org.apache.derby.impl.store.raw.log.LogToFile.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
    at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
    at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.bootLogFactory(Unknown Source)
    at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.setRawStoreFactory(Unknown Source)
    at org.apache.derby.impl.store.raw.RawStore.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
    at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
    at org.apache.derby.impl.store.access.RAMAccessManager.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
    at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source)
    at org.apache.derby.impl.db.BasicDatabase.bootStore(Unknown Source)
    at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source)
    at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
    at org.apache.derby.impl.services.monitor.BaseMonitor.startProviderService(Unknown Source)

I can't understand why I can connect from the Java app and nothing else? 我不明白为什么我可以通过Java应用程序进行连接而没有其他方法? Is there something in particular I'm doing wrong? 我特别在做错什么吗?

Your ij session is using an older version of Derby. 您的ij会话正在使用旧版本的Derby。

This is controlled by the CLASSPATH that is set when you run ij. 这由运行ij时设置的CLASSPATH控制。

Look closely at the script or command you are using to start ij, to see which version of Derby it is running. 仔细查看用于启动ij的脚本或命令,以查看它正在运行的Derby版本。

Then adjust the CLASSPATH that you use when you run ij so that it uses Derby 10.11, which is the version your Java app is using. 然后调整运行ij时使用的CLASSPATH,以使其使用Derby 10.11(这是Java应用程序正在使用的版本)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM