【问题标题】:Guice Scala module - No valid constructorsGuice Scala 模块 - 没有有效的构造函数
【发布时间】:2018-12-11 12:27:49
【问题描述】:

我有用 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)

【问题讨论】:

    标签: scala playframework guice


    【解决方案1】:

    我有类似的问题并通过将配置作为参数添加到构造函数来解决它,由于某种原因它会搜索带有配置的构造函数,不确定这是否与您的问题相同。

    import com.typesafe.config.Config;
    
    @Inject
    public TradeClearingWorkboardGuiceModule(Environment environment, Config configuration) {
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多