2016-12-08 1 views
1

Je reçois l'erreur suivante: java.lang.IllegalArgumentException: requirement failed: The inlets [] and outlets [BlockOut.out] must correspond to the inlets [] and outlets [BlockOut.out] AKKA ruisseaux entrées et sorties inadéquation

J'ai un graphique très simple: `` ` val g1 = GraphDSL.create() {constructeur implicite => import GraphDSL.Implicits._

val in: Source[ByteString, Any] = Source.single(ByteString(digest)) 
    val flow: GraphStage[FlowShape[ByteString, ByteString]] = new ReadBlockStage(dataStore, blockingExecutionContext) 

    in ~> flow 

    SourceShape(flow.shape.out) 
} 

val sourceGraph: Source [ByteString, NOTUSED] = Source.fromGraph (g1) `` `

et mon flux est défini comme ceci: class ReadBlockStage(dataStore: DataStore, implicit val exceutionContext: ExecutionContext) extends GraphStage[FlowShape[ByteString, ByteString]] with DefaultJsonProtocol { val in = Inlet[ByteString]("DigestSpec.in") val out = Outlet[ByteString]("BlockOut.out") override val shape = FlowShape.of(in, out) ... } Pourquoi ai-je cette erreur? Le port "out" du flux est de type Outlet [ByteString], et ma source est Source [ByteString, NotUsed]. Le message d'erreur est très confus car il ressemble à la forme et à la forme attendue.

Répondre

1

J'ai trouvé le problème. J'avais oublié d'exécuter builder.add() pour chacun des éléments du graphique.