4

这是我的 application.conf:

db.default.driver=org.postgresql.Driver  
db.default.url="postgres://postgres:postgres@localhost:5432/postgres"
db.default.user="postgres"
db.default.password= "postgres"

我下载了 postgresql-9.1-902.jdbc4.jar。通过将其添加为外部 jar 将其包含在我的 jar 文件中。它仍然向我显示找不到驱动程序的错误。帮助?

4

2 回答 2

6

我想说 PostgreSQL 驱动程序毕竟不在您的类路径中,但是由于您没有显示错误消息的确切文本,因此很难确定。如果您能够 (a) 显示完整错误消息和回溯的准确复制和粘贴文本,将会有所帮助;(b)准确显示您放置 PgJDBC jar 的位置。

System.getProperty("java.class.path")考虑添加一些在应用启动期间打印出内容的调试代码。还添加一个执行以下操作的块:

try {
    Class.forName("org.postgresql.Driver")
} catch (ClassNotFoundException ex) {
    // Log or abort here
}

这应该告诉你一些关于类的可见性的信息。由于现代 JVM 和框架上类加载的复杂性,它不会是决定性的——类加载器太多了。

于 2012-08-20T01:36:26.977 回答
6

我在我的项目中使用 postgresql 9.1-901.jdbc4,我配置它是这样的:

构建.scala:

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "project_name"
    val appVersion      = "1.0-SNAPSHOT"

    val appDependencies = Seq(
      // Add your project dependencies here,
      "postgresql" % "postgresql" % "9.1-901.jdbc4"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      // Add your own project settings here  
    )

}

应用程序.conf

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/project_name"
db.default.user=postgres
db.default.password=mypw
db.default.partitionCount=1
db.default.maxConnectionsPerPartition=5
db.default.minConnectionsPerPartition=5

然后我在使用时使用了以下组合:

play clean
play compile
play eclipsify
play ~run

或者,您可以play dependencies在此之后键入以查看其是否正确加载。

于 2012-08-24T18:29:52.337 回答