Play-Spring loader needs following config enteries:
play.application.loader = com.actimust.play.spring.SpringApplicationLoader
play.bindings.disabled += play.api.libs.Crypto (see last exception)
Now when hit localhost:9000 from browser getting run-time exceptions in play and 3rd party libraries e.g. deadbolt, pac4j and others. Most runtime exceptions are DI related and are random in nature.
play.api.UnexpectedException: Unexpected exception[UnsatisfiedDependencyException: Error creating bean with name 'interface be.objectify.deadbolt.java.cache.PatternCache': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'play.cache.CacheApi' available: expected single matching bean but found 2: interface play.cache.CacheApi,interface play.cache.CacheApi qualified with QualifierInstance(@play.cache.NamedCache(value=play))]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:180)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:131)
at scala.Option.map(Option.scala:146)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:131)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:129)
at scala.util.Success.flatMap(Try.scala:231)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:129)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:121)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'interface be.objectify.deadbolt.java.cache.PatternCache': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'play.cache.CacheApi' available: expected single matching bean but found 2: interface play.cache.CacheApi,interface play.cache.CacheApi qualified with QualifierInstance(@play.cache.NamedCache(value=play))
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
-------------------------------------------------------------------- another one --------------------------------------------------------------------------------
play.api.UnexpectedException: Unexpected exception[UnsatisfiedDependencyException: Error creating bean with name 'class play.api.db.evolutions.DynamicEvolutions': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'class play.db.ebean.DefaultEbeanConfig$EbeanConfigParser': Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'play.Environment' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:180)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:131)
at scala.Option.map(Option.scala:146)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:131)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:129)
at scala.util.Success.flatMap(Try.scala:231)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:129)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:121)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'class play.api.db.evolutions.DynamicEvolutions': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'class play.db.ebean.DefaultEbeanConfig$EbeanConfigParser': Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'play.Environment' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1154)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1056)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'class play.db.ebean.DefaultEbeanConfig$EbeanConfigParser': Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'play.Environment' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1154)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1056)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'play.Environment' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1474)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1102)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1154)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1056)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
-------------------------------------------------------------------- another one --------------------------------------------------------------------------------
play.api.UnexpectedException: Unexpected exception[UnsatisfiedDependencyException: Error creating bean with name 'class play.libs.Crypto': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'play.api.libs.Crypto' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}]
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:180)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:131)
at scala.Option.map(Option.scala:146)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:131)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:129)
at scala.util.Success.flatMap(Try.scala:231)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:129)
at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:121)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'class play.libs.Crypto': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'play.api.libs.Crypto' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1095)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'play.api.libs.Crypto' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1486)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1095)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
I posted question to deadbolt forum /mailing list and admin (Steve Chaloner) was kind enough to provide help, he pointed out few other issues also, so I'm here to ask few basic questions:
Note: I'm reading migration guides here and those helped me a lot to fix compilation errors and as I mentioned I'm new to play, I'm sure I'll be making mistakes, and
migration guides are in series like 2.0.x to 2.1 to 2.2 ... to 2.5.x and
hard to follow for me at least.
Here are the project files:
--------------------------------build.sbt--------------------------------
name := """project Name"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file("."))
.enablePlugins(PlayJava, PlayEbean)
.aggregate(ccdUniverse, emailNotification, SoapClient, mailClient, XDM, PortalExceptions, readyClient)
.dependsOn(ccdUniverse, emailNotification, SoapClient, mailClient, XDM, PortalExceptions, readyClient)
scalaVersion := "2.11.8"
resolvers += "fdvsolution.public" at "http://nexus.fdvs.com.ar/content/groups/public/"
resolvers += "Jaspersoft Third Party Repository" at "http://jaspersoft.artifactoryonline.com/jaspersoft/third-party-ce-artifacts/"
resolvers += "Sonatype OSS Maven SNAPSHOT Repository" at "https://oss.sonatype.org/content/repositories/snapshots/"
resolvers += "Sonatype Nexus Respositories" at "https://oss.sonatype.org/content/repositories/"
resolvers += Resolver.url("Objectify Play Repository", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns)
resolvers += Resolver.url("Objectify Play Snapshot Repository", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns)
resolvers += "Jasper" at "https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports"
resolvers += "json" at "http://maven.jahia.org/maven2"
resolvers += "birt-runtime-codec" at "https://mvnrepository.com/artifact/org.eclipse.birt.runtime.3_7_1/org.apache.commons.codec"
resolvers += "birt-runtime-resources" at "https://mvnrepository.com/artifact/org.eclipse.birt.runtime/org.eclipse.core.resources"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
javaCore,
javaJdbc,
"mysql" % "mysql-connector-java" % "5.1.40",
"javax.persistence" % "persistence-api" % "1.0.2",
"redis.clients" % "jedis" % "2.9.0",
"org.jdom" % "jdom2" % "2.0.6",
"jaxen" % "jaxen" % "1.1.6",
"com.google.code.gson" % "gson" % "2.8.0",
"org.apache.commons" % "commons-pool2" % "2.4.2",
"be.objectify" %% "deadbolt-java" % "2.5.4" exclude("cache", "cache"),
"net.sf.jasperreports" % "jasperreports" % "6.4.0",
"org.apache.activemq" % "activemq-core" % "5.7.0",
"junit" % "junit" % "4.12" % "test",
"org.mockito" % "mockito-core" % "2.7.0" % "test",
"redis.clients" % "jedis" % "2.9.0",
"org.jdom" % "jdom2" % "2.0.6",
"jaxen" % "jaxen" % "1.1.6",
"com.google.code.gson" % "gson" % "2.8.0",
"org.apache.commons" % "commons-pool2" % "2.4.2",
"org.eclipse.jdt" % "core" % "3.3.0-v_771",
"org.eclipse.tycho" % "org.eclipse.jdt.core" % "3.9.1.v20130905-0837",
"org.eclipse.core" % "runtime" % "3.9.100-v20131218-1515",
"org.eclipse.birt.runtime" % "org.eclipse.core.resources" % "3.9.1.v20140825-1431",
"org.eclipse.birt.runtime.3_7_1" % "org.apache.commons.codec" % "1.3.0",
"org.apache.axis" % "axis" % "1.4",
"javax.xml" % "jaxrpc" % "1.1",
"org.apache.directory.studio" % "org.apache.commons.io" % "2.4",
"joda-time" % "joda-time" % "2.9.7",
"com.jayway.restassured" % "rest-assured" % "2.9.0" % "test" exclude("org.codehaus.groovy", "groovy"),
"org.codehaus.groovy" % "groovy-all" % "2.4.8" % "test",
"org.apache.commons" % "commons-lang3" % "3.5",
"commons-validator" % "commons-validator" % "1.5.1",
"org.hamcrest" % "hamcrest-all" % "1.3" % "test",
"com.lowagie" % "itext" % "4.2.1",
"ar.com.fdvs" % "DynamicJasper-core-fonts" % "1.0",
"org.olap4j" % "olap4j" % "1.2.0",
"javax.mail" % "mail" % "1.4.7",
"org.apache.james" % "james-server-cli" % "3.0-beta4",
"org.apache.james" % "james-server-data-api" % "3.0-beta4",
"org.apache.cxf" % "cxf-rt-frontend-jaxws" % "3.1.9",
"org.apache.cxf" % "cxf-rt-transports-http" % "3.1.9",
"org.apache.cxf" % "cxf-rt-transports-http-jetty" % "3.1.9",
"org.apache.cxf" % "cxf-rt-ws-security" % "3.1.9",
"net.lingala.zip4j" % "zip4j" % "1.3.2",
"com.jolbox" % "bonecp" % "0.8.0.RELEASE",
"org.json" % "json" % "20160810",
"commons-lang" % "commons-lang" % "2.6",
"net.tanesha.recaptcha4j" % "recaptcha4j" % "0.0.7",
"log4j" % "log4j" % "1.2.17",
"org.scribe" % "scribe" % "1.3.7",
"org.javassist" % "javassist" % "3.18.0-GA",
"net.sourceforge.dynamicreports" % "dynamicreports-core" % "5.0.0",
"net.sourceforge.dynamicreports" % "dynamicreports-adhoc" % "5.0.0",
"org.nhind" % "xd-common" % "1.1-SNAPSHOT",
"org.springframework" % "spring-core" % "4.3.6.RELEASE",
"org.springframework" % "spring-context" % "4.3.6.RELEASE",
"org.springframework" % "spring-test" % "4.3.6.RELEASE" % "test",
"org.easytesting" % "fest-assert" % "1.4",
"com.actimust"% "play-spring-loader" % "1.0.0"
)
lazy val ccdUniverse = (project in file("dependency-projects/ccd-universe"))
lazy val emailNotification = (project in file("dependency-projects/EmailNotification"))
lazy val SoapClient = (project in file("dependency-projects/soap.client"))
lazy val mailClient = (project in file("dependency-projects/mailclient"))
lazy val XDM = (project in file("dependency-projects/xdm")).dependsOn(ccdUniverse)
lazy val PortalExceptions = (project in file("dependency-projects/exceptions"))
//lazy val playPac4jJava = (project in file("dependency-projects/play-pac4j_java"))
lazy val readyClient = (project in file("dependency-projects/ready.client"))
fork in run := true
routesGenerator := InjectedRoutesGenerator
--------------------------------puglins.sbt-------------------------------------
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.10")
// Web plugins
addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.4")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.8")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0")
addSbtPlugin("org.irundaia.sbt" % "sbt-sassify" % "1.4.6")
// Play enhancer - this automatically generates getters/setters for public fields
// and rewrites accessors of these fields to use the getters/setters. Remove this
// plugin if you prefer not to have this feature, or disable on a per project
// basis using disablePlugins(PlayEnhancer) in your build.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
// Play Ebean support, to enable, uncomment this line, and enable in your build.sbt using
//enablePlugins(PlayEbean).
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.2")
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2")
------build.properties---------
sbt.version=0.13.13
Thanks
--
You received this message because you are subscribed to the Google Groups "Play Framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to play-framework+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/play-framework/351f872e-e4a9-4c9a-9148-f9f721d634b8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/play-framework/CAGHe3P%3DZrYGKnc0JgzvqV5mgTK0E6X%2BcadCFhSF%2BKov6h-30vQ%40mail.gmail.com.