我应该在哪里放置JDBC驱动程序,使其作为Jax-rs webservice的一部分工作?

时间:2013-02-23 07:53:47

标签: rest jdbc driver jax-rs

我正在构建一个RESTful Web服务。我正在使用Jax-rs(Jersey),一个简单的客户端和一个简单的服务器。我附加了一个PostgreSQL数据库及其相应的JDBC驱动程序。

服务器&当没有数据库内容时,客户端工作正常。 (所以客户端/服务器代码很好)

问题开始当我扩充服务器以查询数据库时:
服务器抛出:No suitable driver found for jdbc:postgresql://localhost/MyDataBase
客户报告500 internal service error

如果我以相同的方式从普通的旧java应用程序(在同一个包中)中使用数据库,则没有任何问题(因此连接/查询代码也很好)。

只有当我从服务器查询它时才会收到错误。所以,我认为代码没有问题,只有JDBC驱动程序的位置。

我试过了:

  • 将postgresql驱动程序.jar放在我项目的任何地方
  •     的Class.forName( “../../ .. postgresql.jar”)

我想知道:

  • 这个.jar应该放在一个动态的网络项目中?
  • 为什么它适用于Java应用程序,而不适用于应用程序服务器?

1 个答案:

答案 0 :(得分:1)

您无法将整个.jar文件作为驱动程序加载。你需要从中选择一个Driver类。

Class.forName("../../..postgresql.jar")

以上代码似乎不正确。

请尝试使用此代码:

Class.forName("org.postgresql.Driver");
Connection connection = null;
connection = DriverManager.getConnection(
   "jdbc:postgresql://hostname:port/dbname","username", "password");
connection.close();