我有一个使用Derby Network Server连接到Derby数据库的应用程序,该服务器已作为Netbeans IDE之外的独立进程启动。
当我在IDE中运行我的应用程序时(我没有从“服务”选项卡启动网络服务器,因为它已在运行),会发现以下情况: -
应用程序成功连接到服务器。
后续数据库访问失败,错误为default: &default
adapter: mysql2
pool: 5
timeout: 5000
database: sa
development:
<<: *default
user: root
password: ""
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
user: sa
password: "mypassss"
Netbeans中的persistence.xml显示以下JDBC连接: -
require "capistrano/rvm"
require "capistrano/bundler"
require "capistrano/rails/migrations"
require "capistrano/passenger"
[大卫在TEST上]
然而,Netbeans中的xml源显示以下内容: -
Internal Exception: java.sql.SQLNonTransientConnectionException: The connection was refused because the database MyAppDB was not found.
Error Code: 40000
我可以通过更改persistence.xml源(在Netbeans中)来解决此问题,以便为JDBC连接显示以下内容: -
jdbc:derby://localhost:1527//Users/David/Desktop/DerbyDatabases/MyAppDB
现在一切正常,应用程序运行正常: - )
无论其!!!
一旦我告诉Netbeans做一个Clean and Build Project,它就会将JDBC连接恢复为: -
jdbc:derby://localhost:1527/MyAppDB
在运行应用程序时,它无法再以与上述相同的错误访问Db。
请注意,如果通过“服务”选项卡打开连接从Netbeans运行网络服务器,则不会出现这些问题。这对我来说没有用,因为我想部署应用程序。
你们其中任何人都知道这里发生了什么吗? - 我确信这是我的一个简单错误。
谢谢。
答案 0 :(得分:1)
最终通过删除持久性单元(使用NetBeans)并使用相同的名称重新创建它,但使用包含正确路径的JDBC连接来解决此问题。这是NetBeans问题吗?