我尝试使用JDBC连接将Scala应用程序部署到EC2(Amazon Linux)上的生产计算机上。
在开发系统(Windows,IntelliJ Idea IDE,Java 1.8.0_74)上,我可以运行应用程序并连接到数据库而不会出现问题。
在部署机器(EC2 Amazon Linux,Java 1.8.0_101-b13)上使用gradle通过应用程序插件(更具体地说是distZip)生成的二进制文件和库,我无法获得与PostgreSQL数据库的连接我尝试运行该应用程序。
我收到以下消息:
Exception in thread "main" java.lang.ExceptionInInitializerError
at SlackBot$.delayedEndpoint$SlackBot$1(SlackBot.scala:22)
at SlackBot$delayedInit$body.apply(SlackBot.scala:14)
at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at SlackBot$.main(SlackBot.scala:14)
at SlackBot.main(SlackBot.scala)
Caused by: java.sql.SQLException: No suitable driver found for
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at integrations.OrdersIntegration$.<init>(OrdersIntegration.scala:33)
at integrations.OrdersIntegration$.<clinit>(OrdersIntegration.scala)
我已经使用yum在实例上安装了postgresql和posgresql-jdbc,并升级到最新版本的Java。
我还尝试从PosgreSQL站点下载最新的JDBC并将其添加到类路径中但没有成功。
我不完全确定我缺少什么,因为我能够在我的开发环境中运行此代码而不会出现问题。 没有为VM设置选项,也不需要任何程序参数。
非常感谢任何帮助。