无法使用spring roo,eclipse,gwt和hibernate连接到postgresql数据库

时间:2011-02-03 21:15:01

标签: eclipse hibernate postgresql spring-roo

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

  • Eclipse 3.6.1
  • GWT 2.1.1
  • SpringSource Tool Suite 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并执行:

    数据库内省--schema no-schema-required

这会显示对话框,显示postgresql可用的附加组件 执行:

addon install id --searchResultId 01
罗回来了:

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

Deploying...done.

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

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

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

所以,我假设我的连接属性不对,但我不确定。我们的数据库使用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

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

非常感谢, 米奇

2 个答案:

答案 0 :(得分:1)

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

addon install id --searchResultId 02

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

答案 1 :(得分:0)

我对“roo”一无所知,所以,你可能想调整我的答案,让它与roo一起工作。

  

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

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

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