scala – slick 3.0.0,未加载HikariCP驱动程序 – IllegalAccess
我试图使用
tminglei/slick-pg v9.0.0与光滑3.0.0,并得到一个IllegalAccessException:
akka.actor.ActorInitializationException: exception during creation at akka.actor.ActorInitializationException$.apply(Actor.scala:166) ~[akka-actor_2.11-2.3.11.jar:na] ... Caused by: java.lang.RuntimeException: driverClassName specified class 'com.github.tminglei.MyPostgresDriver$' could not be loaded at com.zaxxer.hikari.AbstractHikariConfig.setDriverClassName(AbstractHikariConfig.java:370) ~[HikariCP-java6-2.3.8.jar:na] at slick.jdbc.HikariCPJdbcDataSource$$anonfun$forConfig$18.apply(JdbcDataSource.scala:145) ~[slick_2.11-3.0.0.jar:na] at slick.jdbc.HikariCPJdbcDataSource$$anonfun$forConfig$18.apply(JdbcDataSource.scala:145) ~[slick_2.11-3.0.0.jar:na] at scala.Option.map(Option.scala:146) ~[scala-library-2.11.7.jar:na] at slick.jdbc.HikariCPJdbcDataSource$.forConfig(JdbcDataSource.scala:145) ~[slick_2.11-3.0.0.jar:na] at slick.jdbc.HikariCPJdbcDataSource$.forConfig(JdbcDataSource.scala:135) ~[slick_2.11-3.0.0.jar:na] at slick.jdbc.JdbcDataSource$.forConfig(JdbcDataSource.scala:35) ~[slick_2.11-3.0.0.jar:na] at slick.jdbc.JdbcBackend$DatabaseFactoryDef$class.forConfig(JdbcBackend.scala:223) ~[slick_2.11-3.0.0.jar:na] at slick.jdbc.JdbcBackend$$anon$3.forConfig(JdbcBackend.scala:33) ~[slick_2.11-3.0.0.jar:na] ... Caused by: java.lang.IllegalAccessException: Class com.zaxxer.hikari.AbstractHikariConfig can not access a member of class com.github.tminglei.MyPostgresDriver$with modifiers "private" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:109) ~[na:1.7.0_79] at java.lang.Class.newInstance(Class.java:373) ~[na:1.7.0_79] at com.zaxxer.hikari.AbstractHikariConfig.setDriverClassName(AbstractHikariConfig.java:366) ~[HikariCP-java6-2.3.8.jar:na] ... 43 common frames omitted HikariCP是光面3.0.0中的默认连接池 我已经在example中定义了驱动程序类: trait MyPostgresDriver extends ExPostgresDriver with PgArraySupport with PgEnumSupport with PgRangeSupport with PgHStoreSupport with PgSearchSupport{ override val api = new MyAPI {} ////// trait MyAPI extends API with ArrayImplicits with RangeImplicits with HStoreImplicits with SearchImplicits with SearchAssistants } object MyPostgresDriver extends MyPostgresDriver 我的数据库配置非常简单[以下类型安全配置的摘录]: slick.dbs.default { driver="com.github.tminglei.MyPostgresDriver$" db { driver="org.postgresql.Driver" url="jdbc:postgresql://hostname:port/dbname" user=user password="pass" } } 它似乎不应该工作,但…… 我应该以某种方式改变我的司机课程吗?还有别的吗? 注意:在我正在使用的stacktrace中可以看到 > Java 1.7.0_79 最后,通过Class.class中的jdk代码进行调试时(反编译的第143行) Constructor tmpConstructor1 = this.cachedConstructor; 我得到以下(toString’ed)值(如intellij所示): private com.github.tminglei.MyPostgresDriver$() 这可能是问题的原因吗?如果是这样我该如何解决? 编辑 我已经用库存PostgresDriver替换了自定义驱动程序配置,如下所示: slick.dbs.default { driver="slick.driver.PostgresDriver$" db { driver="org.postgresql.Driver" url="jdbc:postgresql://hostname:port/dbname" user=user password="pass" } } 错误是一样的: akka.actor.ActorInitializationException: exception during creation ... Caused by: java.lang.RuntimeException: driverClassName specified class 'slick.driver.PostgresDriver$' could not be loaded ... Caused by: java.lang.IllegalAccessException: Class com.zaxxer.hikari.AbstractHikariConfig can not access a member of class slick.driver.PostgresDriver$with modifiers "private" 解决方法
我遇到了类似的问题.
我认为您正在使用Database.forConfig(“slick.dbs.default”),但您的配置文件是DatabaseConfig格式. 相反,尝试使用: val dbConfig: DatabaseConfig[PostgresDriver] = DatabaseConfig.forConfig("slick.dbs.default") val db = dbConfig.db (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |