【问题标题】:Unable to connect to a postgresql database with spring roo, eclipse, gwt, and hibernate无法使用 spring roo、eclipse、gwt 和 hibernate 连接到 postgresql 数据库
【发布时间】:2011-06-20 23:31:35
【问题描述】:

我刚刚开始使用 Roo,我对它的可能性感到兴奋。但是我在尝试连接到我的 postgresql 数据库时遇到问题。我搜索了他们的论坛和互联网,但没有解决我的问题。这是我的环境:

  • Eclipse 3.6.1
  • GWT 2.1.1
  • SpringSource 工具套件 2.5.2.RELEASE
  • Spring Roo 1.1.1.RELEASE
  • PostgreSQL v.8.3.11 数据库

我已采取的步骤: - 从 Spring Dashboard 创建了一个新的 Spring Roo 项目 - 打开 roo shell 并执行:

persistence setup --provider HIBERNATE --database POSTGRES
  • 打开 database.properties 文件并添加:

--用户名 - 密码 --url

  • 返回roo shell并执行:

    database introspect --schema no-schema-required

这会弹出一个对话框,显示可用于 postgresql 的附加组件 执行:

addon install id --searchResultId 01

roo 返回:

Target resource(s):
-------------------
spring-roo-postgres-jdbc4-wrapper (9.0.0.801_jdbc4_0001)

Deploying...done.

然后当我自动完成数据库自省命令时,我得到:

database introspect --schema unable-to-obtain-connection

当我执行它时,我得到 JDBC 驱动程序不适用于 'org.postgresql.Driver'

所以,我假设我的连接属性不正确,但不确定。我们的数据库使用 SSL,我必须将以下内容添加到我的连接 url 以从我的其他项目进行连接:

jdbc:postgresql://10.104.0.41:5432/mydb?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

这是来自我的 database.properties 文件的源代码:

database.driverClassName=org.postgresql.Driver
database.url=jdbc\:postgresql\://10.104.0.41\:5432/mydb
database.username=xxx
database.password=...
ssl=true
sslfactory=org.postgresql.ssl.NonValidatingFactory

我已经尝试删除文件中的 \ 而不做任何更改,并且我尝试了各种连接 url 组合。我认为 url 是问题所在,但目前不确定。 昨天,当我尝试使用 roo1.1.1.RELEASE 安装驱动程序插件时,由于关键认证问题,我得到了超时。我使用了 roo1.1.2.BUILD-SNAPSHOT 并且能够解决这个问题,但是我会在尝试运行 introspect 命令时遇到 NPE 错误。我今天新安装了 SpringSource Tool Suite,删除了我的 .m2 存储库,并使用 roo1.1.1 开始了一个新项目,能够安装驱动程序但现在无法连接。任何帮助将不胜感激,我有点卡住了,直到我可以对一些表进行逆向工程。 我还应该注意,我可以通过 Eclipse 中的数据源资源管理器使用这些连接属性和这个连接 url 连接到数据库。我还连接了其他不使用 roo 和 hibernate 的项目。我还可以使用 roo 连接到本地 Derby 数据库。

非常感谢, 米奇

【问题讨论】:

    标签: eclipse hibernate postgresql spring-roo


    【解决方案1】:

    对于那些现在登陆此页面的人。要解决您必须执行的问题:

    addon install id --searchResultId 02
    

    因为如果您使用更新的 Postgre,9.0.801.0001 Postgres 是正确的版本。

    【讨论】:

      【解决方案2】:

      我对“roo”一无所知,因此,您可能需要调整我的答案以使其与 roo 一起使用。

      当我执行它时,我得到 JDBC 驱动程序不适用于 'org.postgresql.Driver'

      这意味着 JDBC 驱动程序 JAR 不在您的类路径中。转到this page,下载适当的驱动程序(JDBC 4,如果您有疑问),并将其添加到您的类路径中。如果您使用的是 maven,您可能需要添加此依赖项(调整版本标签):

      <dependency>
          <groupId>postgresql</groupId>
          <artifactId>postgresql</artifactId>
          <version>...</version>
      </dependency>
      

      【讨论】:

      • 感谢回复,我一开始也试过了,结果发现roo不支持jdbc4驱动,我切换到jdbc3版本后就建立了连接。
      • 一位用户要求我的解决方案提供更多详细信息,所以在这里。要添加 jdbc3 驱动程序,请从 roo shell 中选择该选项。当执行 >>database introspect --schema no-schema-required 命令时,它应该列出 jdbc3 驱动程序,您可以使用插件安装 ID ,它将安装驱动程序。
      猜你喜欢
      • 2023-04-04
      • 2015-06-11
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2018-12-24
      • 1970-01-01
      相关资源
      最近更新 更多