2017-09-07 22 views
1

MacWire DIフレームワークを使用していますが、このエラーが発生しています。MacWire:タイプの複数の値が見つかりました

Found multiple values of type [play.api.mvc.DefaultActionBuilder]: [List(defaultActionBuilder, Action)] 
[error] override lazy val controllerComponents: DefaultControllerComponents = wire[DefaultControllerComponents] 

マイapplicatopn Loaderはこれです:

class AppApplicationLoader extends ApplicationLoader { 
    def load(context: Context) = { 
    LoggerConfigurator(context.environment.classLoader).foreach { cfg => 
     cfg.configure(context.environment) 
    } 
    new AppComponents(context).application 
    } 
} 

class AppComponents(context: Context) extends 
     BuiltInComponentsFromContext(context) with AhcWSComponents 
     with AssetsComponents with HttpFiltersComponents 
     with EvolutionsComponents with DBComponents with HikariCPComponents with EhCacheComponents { 

     override lazy val controllerComponents: DefaultControllerComponents = wire[DefaultControllerComponents] 

私はコードの小さな修正後に同様のいくつかの他のエラーを取得してきました。これらのエラーを追跡するためにDI依存関係をどのように追跡できますか?

答えて

0

ただ、私自身がこれを遭遇し、プレイ2.6.3でバックポートとして含まれた、コミットに起因すると表示されます。

https://github.com/playframework/playframework/pull/7676/files/809cd1e880b01d45e95d41e65f20bfa984d1e122#r138400765

...プレイ2.6でコンパイルので、コードを。 2はPlay 2.6.3で失敗します。

回避策:

  • 元に戻すあなたのDefaultControllerComponentsの作成を指定し、手動で... 2.6.2、または...
  • を再生する - すなわち
その特定のコンストラクタのためMacWireを使用していません

val defaultControllerComponents = new DefaultControllerComponents(
    defaultActionBuilder, 
    playBodyParsers, 
    messagesApi, 
    langs, 
    fileMimeTypes, 
    executionContext 
) 
:としてきれいではありませんが、それはプレイ2.6.3で動作します

関連する問題