7

Projemizde, bir kafka kuyruğundan çıkan, bir harita işlevi dönüşümü gerçekleştiren ve başka bir sıraya yazan bir Flink (1.1.3) akış işine sahibiz.Flick ve Play 2.5 arasındaki Akka sürüm çakışması

Bu, akışın bir parçası olarak giden bir REST isteğini ekleyene kadar iyi çalışıyordu. Onu ve çalışan dağıtırken Bu lokal iyi çalıştı

val config = new AhcWSClientConfig(wsClientConfig = WSClientConfig()) 
    val builder = new AhcConfigBuilder(config) 
    val ahcConfig = builder.configure().build() 
    new AhcWSClient(ahcConfig)(ActorMaterializer()(ActorSystem())) 

ama: biz (bizim yığının diğer yerlerde kullanılır gibi) Play Framework WSClient kullanılan ve bu şekilde kodda oluşturulan Bunu yapmak için içine incelenmesi

java.lang.NoSuchMethodError: akka.util.Helpers$.toRootLowerCase(Ljava/lang/String;)Ljava/lang/String; 
    at akka.stream.StreamSubscriptionTimeoutSettings$.apply(ActorMaterializer.scala:491) 
    at akka.stream.ActorMaterializerSettings$.apply(ActorMaterializer.scala:243) 
    at akka.stream.ActorMaterializerSettings$.apply(ActorMaterializer.scala:232) 
    at akka.stream.ActorMaterializer$$anonfun$1.apply(ActorMaterializer.scala:41) 
    at akka.stream.ActorMaterializer$$anonfun$1.apply(ActorMaterializer.scala:41) 
    at scala.Option.getOrElse(Option.scala:121) 
    at akka.stream.ActorMaterializer$.apply(ActorMaterializer.scala:41) 
    at com.ourstuff.etl.core.utils.web.GlobalWSClient$.generateClient(WSClientFactory.scala:32) 

Bu (Flink 1.1.x getirdiği) Akka 2.3.x ve (Play Framework getirdiği) Akka 2.4.x arasında bir çarpışma olduğu varsayılır: bir kümede, bu istisna var.

Bu sorunu çözeceği varsayılarak Flink kümesini 1.3.1'e yükselttik (kodun Flink'e olan bağımlılığı kadar). Fakat aynı sorun devam ediyor gibi görünüyor.

Buna neden olan şey hakkında bir fikrin var mı?

+0

Flink 1.3.1 hala Akka 2.3 kullanıyor (teknik olarak flakka adı verilen özel bir 2.3 yapısı). –

+0

@ChesnaySchepler, Flink 1.3.1'in akka (flaka) 'nın kendi özel versiyonunu kullanması nedeniyle, neden clathpath içinde akka'yı arayan bir oyunla bir çarpışma olacak? – JoefGoldstein

+0

Sadece bunun üzerine güncelleştirmek için. sbt 'whatDependsOn" com.typesafe.akka "" akka-actor_2.11 "" 2.3.7 "' üzerinde koştum ve herhangi bir sonuç vermedi. – JoefGoldstein

cevap

1

Bu bağımlılık ihtilafını çözmenin tek yolu relocating the conflicting classes into a different namespace'dır.

+0

Çatışan sınıfların, oyunun bağımlılığı olan akka-aktörün içinde olduğunu düşünürsek, oyun çerçevesini de ve buna bağlı olan “ortak” kütüphanelerimizin tümünü gölgelemem gerekecek. Bu çok ciddi bir basamaklı efekti olacaktır. Tek seçenek bu mu? – JoefGoldstein

+0

Orijinal sorgumla ilgili bir yorumda da bahsettiğim gibi, Flink 1.3.1 teknik olarak akka'yı gölgeliyor (bunun yerine "flakka" yı kullanarak), böylece kendi başına sorunu çözmeli, öyle olmasa da. – JoefGoldstein

+0

Bu sorunla ilgili herhangi bir güncelleme var mı? – victtim