CSVファイルを取得し、toXml関数を持つ既存のオブジェクトを使用してXMLに変更し、これをエンドポイントに通知します。それはakka.stream.scaladsl.Flow[(akka.http.scaladsl.model.HttpRequest, com.cogpp.exp.Thing),(scala.util.Try[akka.http.scaladsl.model.HttpResponse],
が見つかりましたが、ビアのこのバージョンはakka.stream.Graph[akka.stream.FlowShape[akka.http.scaladsl.model.HttpRequest,?],?]
を期待するとして、それは.via(poolClientFlow)
への呼び出しとしてコンパイルされません。しかしデータを投稿するためのAkkaストリームは、フローを経由しないグラフを期待しています
val poolClientFlow =
Http().cachedHostConnectionPool[Thing]("localhost",5000)
val file = new File("./example.csv")
val uploadPipeline =
FileIO.fromFile(file)
.via(Framing.delimiter(ByteString("\n"), maximumFrameLength = 1024))
.map(_.utf8String)
.map(_.split(","))
.map(t => Thing(t(0),t(1).toInt,t(2).toInt))
.map(_.toXml)
.map(_.toString)
.map(ByteString(_))
.map(d =>HttpRequest(method=HttpMethods.POST,uri=s"/import",entity = d))
.via(poolClientFlow)
.runForeach(x => System.out.println(x.toString()))
- :私が作成したコードは次のようになります。
poolClientFlow
を正しく構築していないと思いますが、私が行ったことと他のサンプルコードで見たこととの違いはわかりません。誰も助けることができますか?
ありがとう!それはそれを修正しました!私はあなたが非常に多くの地図を持っていることは間違いないと思う、おそらくオーバーヘッドを追加するだけです。 – cogpp