将丢失的驱动程序添加到生产中的旧项目

时间:2019-04-18 10:15:47

标签: java deployment runtime

我正在将旧项目迁移到新服务器。以前该项目使用Oracle DB,但现在我希望它使用Postgress。这些查询非常简单,并且在Postgres中工作相同。

但是,该项目缺少Postgres jdbc驱动程序。我可以以某种方式将此依赖项横向添加到jar中而无需重新编译吗?

1 个答案:

答案 0 :(得分:1)

  

我可以以某种方式将此依赖项添加到jar中而无需重新编译吗?

要视情况而定。

  • 如果您以java -jar myserver.jar ...的身份运行服务器,则至少 需要修改JAR文件中的清单。严格来说,这不需要重新编译,但是您确实需要爆炸,修改和重新打包JAR文件。

  • 如果服务器使用Class.forName显式加载Oracle Driver类,则需要更改该代码以加载Postgres Driver类。 (还有其他使用JDBC的方法可以避免这种情况,但这取决于旧服务器的实现方式。)

  • 如果您的服务器使用Oracle特定的数据库类或Oracle特定的SQL功能(或者它需要在Postgres世界中执行相同的操作),则将需要进行更广泛的更改。

但是,如果没有详细检查代码库,我们就无法预测所需的内容。

我的建议是将Oracle驱动程序JAR替换为Postgres驱动程序JAR,并查看针对具有适当架构和数据的Postgres数据库运行服务器时会发生什么情况。

但是我不会在生产中这样做。在测试环境中进行操作。如果您无法设置合适的测试环境,那就算了。

如果您没有服务器的源代码,我也会忘记它。如果有任何问题,您很可能需要源代码来找出问题并解决。

相关问题