public UserServiceImpl(PersistentEntityRegistry persistentEntityRegistry, UserRepository userRepo) {
this.persistentEntityRegistry = persistentEntityRegistry;
persistentEntityRegistry.register(UserEntity.class);
this.userRepo = userRepo;
}
import com.lightbend.lagom.javadsl.persistence.cassandra.CassandraSession;
import com.lightbend.lagom.javadsl.persistence.jdbc.JdbcSession;
@Singleton
public class UserRepository {
private final CassandraSession casSession;
private final JdbcSession jdbcSession;
@Inject
public UserRepository(CassandraSession casSession, JdbcSession jdbcSession) {
this.casSession = casSession;
this.jdbcSession = jdbcSession;
LoggerFactory.getLogger(UserRepository.class).info("Cass-Session: "+casSession);
LoggerFactory.getLogger(UserRepository.class).info("Jdbc-Session: "+jdbcSession);
//readSide.register(PUserEventProcessor.class);
}
...
}
In application.conf of the -impl plugin i wrote:
jdbc-defaults.slick {
jndiDbName=DefaultDB
}
db.default {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://localhost/iot"
db.default.username = "testdb"
db.default.password= "testpass"
logSql=true
hikaricp {
minimumIdle = ${db.default.async-executor.minConnections}
maximumPoolSize = ${db.default.async-executor.maxConnections}
}
}
jdbc-defaults.slick.driver = "slick.driver.PostgresDriver$"
lagom.persistence.jdbc.create-tables.auto=false
Oh and in build.sbt i tried with adding PlayJava and without but i can't figure out what to do... and i also tried with play.db.Database instead of JdbcSession.
greetings,
Michael
Stacktraces:
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) Could not find a suitable constructor in com.lightbend.lagom.internal.javadsl.server.ResolvedServices. Classes must have either one (and only one) constructor annotated with @In
ject or a zero-argument constructor that is not private.
at com.lightbend.lagom.internal.javadsl.server.ResolvedServices.class(JavadslServerBuilder.scala:100)
while locating com.lightbend.lagom.internal.javadsl.server.ResolvedServices
for the 1st parameter of com.lightbend.lagom.internal.javadsl.broker.kafka.JavadslRegisterTopicProducers.<init>(JavadslRegisterTopicProducers.scala:32)
at com.lightbend.lagom.internal.javadsl.broker.kafka.KafkaBrokerModule.configure(KafkaBrokerModule.scala:11) (via modules: com.google.inject.util.Modules$OverrideModule -> com.li
ghtbend.lagom.internal.javadsl.broker.kafka.KafkaBrokerModule)
2) Could not find a suitable constructor in com.lightbend.lagom.internal.javadsl.server.ResolvedServices. Classes must have either one (and only one) constructor annotated with @In
ject or a zero-argument constructor that is not private.
at com.lightbend.lagom.internal.javadsl.server.ResolvedServices.class(JavadslServerBuilder.scala:100)
while locating com.lightbend.lagom.internal.javadsl.server.ResolvedServices
for the 2nd parameter of com.lightbend.lagom.internal.server.ServiceRegistrationModule$RegisterWithServiceRegistry.<init>(ServiceRegistrationModule.scala:56)
at com.lightbend.lagom.internal.server.ServiceRegistrationModule.bindings(ServiceRegistrationModule.scala:29):
Binding(class com.lightbend.lagom.internal.server.ServiceRegistrationModule$RegisterWithServiceRegistry to self eagerly) (via modules: com.google.inject.util.Modules$OverrideModule
-> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
3) Could not find a suitable constructor in com.lightbend.lagom.javadsl.api.ServiceInfo. Classes must have either one (and only one) constructor annotated with @Inject or a zero-ar
gument constructor that is not private.
at com.lightbend.lagom.javadsl.api.ServiceInfo.class(ServiceInfo.java:52)
while locating com.lightbend.lagom.javadsl.api.ServiceInfo
for the 3rd parameter of com.lightbend.lagom.internal.javadsl.broker.kafka.JavadslRegisterTopicProducers.<init>(JavadslRegisterTopicProducers.scala:32)
at com.lightbend.lagom.internal.javadsl.broker.kafka.KafkaBrokerModule.configure(KafkaBrokerModule.scala:11) (via modules: com.google.inject.util.Modules$OverrideModule -> com.li
ghtbend.lagom.internal.javadsl.broker.kafka.KafkaBrokerModule)
4) Could not find a suitable constructor in com.lightbend.lagom.javadsl.api.ServiceInfo. Classes must have either one (and only one) constructor annotated with @Inject or a zero-ar
gument constructor that is not private.
at com.lightbend.lagom.javadsl.api.ServiceInfo.class(ServiceInfo.java:52)
while locating com.lightbend.lagom.javadsl.api.ServiceInfo
for the 1st parameter of com.lightbend.lagom.javadsl.broker.kafka.KafkaTopicFactory.<init>(KafkaTopicFactory.java:33)
at com.lightbend.lagom.javadsl.broker.kafka.KafkaClientModule.configure(KafkaClientModule.java:12) (via modules: com.google.inject.util.Modules$OverrideModule -> com.lightbend.la
gom.javadsl.broker.kafka.KafkaClientModule)
5) Could not find a suitable constructor in com.lightbend.lagom.javadsl.api.ServiceInfo. Classes must have either one (and only one) constructor annotated with @Inject or a zero-ar
gument constructor that is not private.
at com.lightbend.lagom.javadsl.api.ServiceInfo.class(ServiceInfo.java:52)
while locating com.lightbend.lagom.javadsl.api.ServiceInfo
for field at com.lightbend.lagom.internal.javadsl.registry.ServiceRegistryClientProvider.serviceInfo(ServiceRegistryModule.scala:61)
at com.lightbend.lagom.internal.javadsl.registry.ServiceRegistryModule.configure(ServiceRegistryModule.scala:34) (via modules: com.google.inject.util.Modules$OverrideModule -> co
m.lightbend.lagom.internal.javadsl.registry.ServiceRegistryModule)
6) A binding to com.lightbend.lagom.javadsl.persistence.PersistentEntityRegistry was already configured at com.lightbend.lagom.javadsl.persistence.cassandra.CassandraPersistenceMod
ule.configure(CassandraPersistenceModule.scala:30) (via modules: com.google.inject.util.Modules$OverrideModule -> com.lightbend.lagom.javadsl.persistence.cassandra.CassandraPersist
enceModule).
at com.lightbend.lagom.javadsl.persistence.jdbc.JdbcPersistenceModule.configure(JdbcPersistenceModule.scala:24) (via modules: com.google.inject.util.Modules$OverrideModule -> com
.lightbend.lagom.javadsl.persistence.jdbc.JdbcPersistenceModule)
7) A binding to com.lightbend.lagom.spi.persistence.OffsetStore was already configured at com.lightbend.lagom.javadsl.persistence.cassandra.CassandraPersistenceModule.configure(Cas
sandraPersistenceModule.scala:34) (via modules: com.google.inject.util.Modules$OverrideModule -> com.lightbend.lagom.javadsl.persistence.cassandra.CassandraPersistenceModule).
at com.lightbend.lagom.javadsl.persistence.jdbc.JdbcPersistenceModule.configure(JdbcPersistenceModule.scala:27) (via modules: com.google.inject.util.Modules$OverrideModule -> com
.lightbend.lagom.javadsl.persistence.jdbc.JdbcPersistenceModule)
7 errors
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:470)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
at com.google.inject.Guice.createInjector(Guice.java:99)
at com.google.inject.Guice.createInjector(Guice.java:84)
at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:185)
at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:137)
at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
at play.core.server.LagomReloadableDevServerStart$$anon$1.$anonfun$get$5(LagomReloadableDevServerStart.scala:176)
at play.core.server.LagomReloadableDevServerStart$$anon$1$$Lambda$8578/356585956.apply(Unknown Source)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.core.server.LagomReloadableDevServerStart$$anon$1.$anonfun$get$3(LagomReloadableDevServerStart.scala:173)
at play.core.server.LagomReloadableDevServerStart$$anon$1$$Lambda$8576/1603958247.apply(Unknown Source)
at scala.Option.map(Option.scala:146)
at play.core.server.LagomReloadableDevServerStart$$anon$1.$anonfun$get$2(LagomReloadableDevServerStart.scala:149)
at play.core.server.LagomReloadableDevServerStart$$anon$1$$Lambda$8575/2054106972.apply(Unknown Source)
at scala.util.Success.flatMap(Try.scala:247)
at play.core.server.LagomReloadableDevServerStart$$anon$1.$anonfun$get$1(LagomReloadableDevServerStart.scala:147)
at play.core.server.LagomReloadableDevServerStart$$anon$1$$Lambda$8523/117169824.apply(Unknown Source)
at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:655)
at scala.concurrent.Future$$$Lambda$6640/530801310.apply(Unknown Source)
at scala.util.Success.$anonfun$map$1(Try.scala:251)
at scala.util.Success.map(Try.scala:209)
at scala.concurrent.Future.$anonfun$map$1(Future.scala:289)
at scala.concurrent.Future$$Lambda$6573/839451565.apply(Unknown Source)
at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
at scala.concurrent.impl.Promise$$Lambda$5938/504335713.apply(Unknown Source)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
--
You received this message because you are subscribed to the Google Groups "Lagom Framework Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lagom-framework+unsubscribe@googlegroups.com.
To post to this group, send email to lagom-framework@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lagom-framework/177d056f-7e14-4d60-a628-ba1d8a8a27f9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
val postgres = "org.postgresql" % "postgresql" % "42.1.4"
lazy val `auth-impl` = (project in file("auth-impl"))
.enablePlugins(LagomJava)
.settings(common: _*)
.settings(
libraryDependencies ++= Seq(
lagomJavadslPersistenceCassandra,
lagomJavadslPersistenceJdbc,
lagomJavadslKafkaBroker,
lagomJavadslTestKit,
postgres,
lombok
)
)
.settings(lagomForkedTestSettings: _*)
.dependsOn(`auth-api`,`security`)
play.modules.enabled += com.lagomtest.m2m.impl.AuthModule
play.modules.disabled += com.lightbend.lagom.javadsl.persistence.jdbc.JdbcPersistenceModule
m2m.cassandra.keyspace = m2m_auth
cassandra-journal.keyspace = ${m2m.cassandra.keyspace}
cassandra-snapshot-store.keyspace = ${m2m.cassandra.keyspace}
lagom.persistence.read-side.cassandra.keyspace = ${m2m.cassandra.keyspace}
# See https://doc.akka.io/docs/akka/current/cluster-sharding.html#distributed-data-vs-persistence-mode
akka.cluster.sharding.state-store-mode = ddata
# Enable the serializer for akka.Done provided in Akka 2.5.8+ to avoid the use of Java serialization.
akka.actor.serialization-bindings {
"akka.Done" = akka-misc
}
jdbc-defaults.slick {
jndiDbName = DefaultDS
}
db.default {
jndiName=DefaultDS
jndiDbName=DefaultDB
async-executor {
queueSize = 10000
# 5 * number of cores
numThreads = 20
# number of threads
minConnections = 20
# 5 * number of threads
maxConnections = 100
}
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://localhost/iot"
username ="test"
password = "test"
logSql=true
hikaricp {
minimumIdle = 3
maximumPoolSize = 4
connectionTestQuery = "SELECT 1"
}
}
lagom.persistence.jpa {
persistence-unit = "default"
initialization-retry {
interval {
min = 5s
factor = 1.0
}
max-retries = 10
}
}
jdbc-defaults.slick.driver = "slick.driver.PostgresDriver$"
lagom.persistence.jdbc.create-tables.auto=false
jdbc-defaults.slick {
jndiDbName = DefaultDS
}
jdbc-defaults.slick {
jndiDbName = DefaultDB
}
db.default {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://localhost/iot"
username ="test"
password = "test"
logSql=true
hikaricp {
minimumIdle = 3
maximumPoolSize = 4
connectionTestQuery = "SELECT 1"
}
}
jdbc-defaults.slick.driver = "slick.driver.PostgresDriver$"
Oh... i was wrong:
Error injecting constructor, java.lang.ClassCastException: org.jdbcdslog.LogSqlDataSource cannot be cast to slick.jdbc.JdbcBackend$DatabaseDef ??
16:10:54.244 [info] akka.cluster.Cluster(akka://auth-impl-application) [sourceThread=auth-impl-application-akka.actor.default-dispatcher-3, akkaTimestamp=15:10:54.243UTC, akkaSourc
e=akka.cluster.Cluster(akka://auth-impl-application), sourceActorSystem=auth-impl-application] - Cluster Node [akka.tcp://auth-impl-appli...@127.0.0.1:53459] - Leader is moving
node [akka.tcp://auth-impl-appli...@127.0.0.1:53459] to [Up]
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) Error injecting constructor, java.lang.ClassCastException: org.jdbcdslog.LogSqlDataSource cannot be cast to slick.jdbc.JdbcBackend$DatabaseDef
at com.lightbend.lagom.internal.javadsl.persistence.jdbc.SlickProvider.<init>(SlickProvider.scala:14)
at com.lightbend.lagom.internal.javadsl.persistence.jdbc.SlickProvider.class(SlickProvider.scala:13)
while locating com.lightbend.lagom.internal.javadsl.persistence.jdbc.SlickProvider
for the 1st parameter of com.lightbend.lagom.internal.javadsl.persistence.jdbc.JdbcSessionImpl.<init>(JdbcSessionImpl.scala:18)
at com.lightbend.lagom.internal.javadsl.persistence.jdbc.JdbcSessionImpl.class(JdbcSessionImpl.scala:18)
while locating com.lightbend.lagom.internal.javadsl.persistence.jdbc.JdbcSessionImpl
while locating com.lightbend.lagom.javadsl.persistence.jdbc.JdbcSession
for the 2nd parameter of biz.sfs.m2m.impl.UserRepository.<init>(UserRepository.java:20)
at biz.sfs.m2m.impl.AuthModule.configure(AuthModule.java:21) (via modules: com.google.inject.util.Modules$OverrideModule -> bi16:10:54.321 [info] akka.cluster.singleton.ClusterSi
ngletonManager [sourceThread=auth-impl-application-akka.actor.default-dispatz.sfs.m2m.impl.AuthModule)
cher-2, akkaTimestamp=15:10:54.321UTC, akkaSource=akka.tcp://auth-impl-app...@127.0.0.1:53459/user/cassandraOffsetStorePrep while locating biz.sfs.m2m.impl.UserRepository
are-singleton, sourceActorSystem=auth-impl-application] - Singleton manager starting singleton actor [akka://auth-impl-applicati for the 2nd parameter of biz.sfs.m2m.impl.UserSe
rviceImpl.<init>(UserServiceImpl.java:26)
at com.lightbend.lagom.javadsl.server.ServiceGuiceSupport.bindServices(ServiceGuiceSupport.java:80) (via modules: com.google.ion/user/cassandraOffsetStorePrepare-singleton/single
ton]
nject.util.Modules$OverrideModule -> biz.sfs.m2m.impl.AuthModule)
16:10:54.342 [info] akka.cluster.singleton.ClusterSingletonManager [sourceThread=auth-impl-application-akka.actor.default-dispat while locating biz.sfs.m2m.impl.UserServiceImpl
cher-2, akkaTimestamp=15:10:54.329UTC, akkaSource=akka.tcp://auth-impl-app...@127.0.0.1:53459/user/cassandraOffsetStorePrep at com.lightbend.lagom.javadsl.server.ServiceGuice
Support.bindServices(ServiceGuiceSupport.java:106) (via modules: com.google.inject.util.Modules$OverrideModule -> biz.sfs.m2m.impl.AuthModule)
while locating com.lightbend.lagom.internal.javadsl.server.ResolvedServices
are-singleton, sourceActorSystem=auth-impl-application] - ClusterSingletonManager state change [Start -> Oldest]
for the 1st parameter of com.lightbend.lagom.internal.javadsl.broker.kafka.JavadslRegisterTopicProducers.<init>(JavadslRegisterTopicProducers.scala:32)
16:10:54.371 [info] com.lightbend.lagom.internal.persistence.cluster.ClusterStartupTaskActor [sourceThread=auth-impl-application-akka.actor.default-dispatcher-21, akkaTimestamp=15:
10:54.342UTC, akkaSource=akka.tcp://auth-impl-app...@127.0.0.1:53459/us at com.lightbend.lagom.internal.javadsl.broker.kafka.KafkaBrokerModule.configure(KafkaBrokerModule.sca