zugreifen kann ich tminglei/slick-pg v9.0.0 mit Slick 3.0.0 zu verwenden, ich versuche und bin immer ein IllegalAccessException
:glatt 3.0.0 mit HikariCP Treiber nicht geladen - Illegal: AbstractHikariConfig kein Mitglied mit Modifikatoren „private“
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 ist der Standard-Verbindungspool in slick 3.0.0
ich den Fahrer Klasse wie viel definiert habe im 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
Meine Datenbank Config ist ziemlich einfach [Auszug aus typsichere Konfiguration folgt]:
slick.dbs.default {
driver="com.github.tminglei.MyPostgresDriver$"
db {
driver="org.postgresql.Driver"
url="jdbc:postgresql://hostname:port/dbname"
user=user
password="pass"
}
}
Es scheint nicht, als ob es nicht funktionieren sollte, und doch ...
Soll ich meine Treiberklasse ändern irgendwie? Ist es etwas anderes?
Hinweis: wie in der Stacktrace zu sehen Ich bin mit
- Java 1.7.0_79
- Scala 2.11.7
- akka 2.3.11 (I die Config-Instanz für Slick teilen und akka)
- glatt 3.0.0
- HikariCP-java6 2.3.8
- tminglei der Slick-pg_core 0.9.0
Schließlich wenn durch den jdk Code bei Class.class Debuggen (dekompilierten Linie 143)
Constructor tmpConstructor1 = this.cachedConstructor;
ich folgendes (toString'ed) Wert zu erhalten (wie dargestellt von IntelliJ):
private com.github.tminglei.MyPostgresDriver$()
Könnte dies ein Hinweis auf das Problem sein? Wenn ja, wie sollte ich es beheben?
EDIT
ich die benutzerdefinierte Treiberkonfiguration mit dem Aktien PostgresDriver wie so ersetzt haben:
slick.dbs.default {
driver="slick.driver.PostgresDriver$"
db {
driver="org.postgresql.Driver"
url="jdbc:postgresql://hostname:port/dbname"
user=user
password="pass"
}
}
Der Fehler ist das gleiche:
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"
es so scheint, von einem privaten Konstruktor verursacht werden könnte ...? – brettw
es scheint so, aber ich kann nicht herausfinden, wo ... wie Sie sich vorstellen können, ich bin ziemlich neu in Scala ... – Yaneeve
@brettw hinzugefügt bearbeiten. Es scheint, als ob der Aktienfahrer nicht so gut funktioniert. – Yaneeve