我有用scala编写的playframework应用程序。问题是当我想为Silhouette添加新模块时。我的模块类与Silhouette example中的模块类非常相似。我可以使用简单的运行命令来运行sbt应用程序,但是当我使用sbt-assembly构建jar并尝试运行它时,我得到了:
No valid constructors
at play.api.inject.Modules$.$anonfun$constructModule$6(Module.scala:155)
at scala.Option.getOrElse(Option.scala:138)
at play.api.inject.Modules$.constructModule(Module.scala:155)
at play.api.inject.Modules$.$anonfun$locate$4(Module.scala:127)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:237)
at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:321)
at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:977)
at scala.collection.TraversableLike.map(TraversableLike.scala:237)
at scala.collection.TraversableLike.map$(TraversableLike.scala:230)
at scala.collection.AbstractSet.scala$collection$SetLike$$super$map(Set.scala:51)
at scala.collection.SetLike.map(SetLike.scala:104)
at scala.collection.SetLike.map$(SetLike.scala:104)
at scala.collection.AbstractSet.map(Set.scala:51)
at play.api.inject.Modules$.locate(Module.scala:125)
at play.api.inject.guice.GuiceableModule$.loadModules(GuiceInjectorBuilder.scala:276)
at play.api.inject.guice.GuiceApplicationBuilder$.$anonfun$$lessinit$greater$default$9$1(GuiceApplicationBuilder.scala:30)
at play.api.inject.guice.GuiceApplicationBuilder.applicationModule(GuiceApplicationBuilder.scala:102)
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.ProdServerStart$.start(ProdServerStart.scala:51)
at play.core.server.ProdServerStart$.main(ProdServerStart.scala:25)
at play.core.server.ProdServerStart.main(ProdServerStart.scala)
答案 0 :(得分:0)
我遇到了类似的问题,并通过将配置作为参数添加到构造函数中来解决了该问题,由于某种原因,它会搜索带有配置的构造函数,不确定是否与您的问题相同。
import com.typesafe.config.Config;
@Inject
public TradeClearingWorkboardGuiceModule(Environment environment, Config configuration) {
}