Netbeans persistence.xml - 持久性单元路径的定义

时间:2017-03-25 14:05:18

标签: java xml jdbc netbeans

我有一个使用Derby Network Server连接到Derby数据库的应用程序,该服务器已作为Netbeans IDE之外的独立进程启动。

当我在IDE中运行我的应用程序时(我没有从“服务”选项卡启动网络服务器,因为它已在运行),会发现以下情况: -

  1. 应用程序成功连接到服务器。

  2. 后续数据库访问失败,错误为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"

  3. 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运行网络服务器,则不会出现这些问题。这对我来说没有用,因为我想部署应用程序。

    你们其中任何人都知道这里发生了什么吗? - 我确信这是我的一个简单错误。

    谢谢。

1 个答案:

答案 0 :(得分:1)

最终通过删除持久性单元(使用NetBeans)并使用相同的名称重新创建它,但使用包含正确路径的JDBC连接来解决此问题。这是NetBeans问题吗?