我刚刚开始使用Roo并对它的可能性感到兴奋。但是我在尝试连接到postgresql数据库时遇到问题。我搜索了他们的论坛和互联网,但没有解决我的问题。这是我的环境:
我采取的步骤: - 从Spring Dashboard创建了一个新的Spring Roo项目 - 打开roo shell并执行:
persistence setup --provider HIBERNATE --database POSTGRES
- 用户名 - 密码 --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数据库。
非常感谢, 米奇
答案 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>