Ich bin dabei, meine Play 2.5.14-Anwendung von Elastic4s 2.4 auf Elastic4s 6.0 zu aktualisieren. Die Anwendung funktioniert (ausschließlich über den httpClient) und ich kann meine Tests laufen lassen, aber nicht beide gleichzeitig!Konfigurieren Sie Elastic4S 6.0 mit HTTP-Client für die Ausführung auf Play 2.5 mit Tests
Exceprt von My build.sbt
"com.sksamuel.elastic4s" %% "elastic4s-core" % Versions.elastic4s excludeAll ExclusionRule(organization = "org.apache.logging.log4j"),
// for the http client
"com.sksamuel.elastic4s" %% "elastic4s-http" % Versions.elastic4s excludeAll ExclusionRule(organization = "org.apache.logging.log4j"),
// for the tcp client
"com.sksamuel.elastic4s" %% "elastic4s-tcp" % Versions.elastic4s excludeAll ExclusionRule(organization = "org.apache.logging.log4j"),
// testing
"com.sksamuel.elastic4s" %% "elastic4s-testkit" % Versions.elastic4s % "test",
"com.sksamuel.elastic4s" %% "elastic4s-embedded" % Versions.elastic4s % "test",
"org.apache.logging.log4j" % "log4j-core" % "2.8.2" % "test",
"org.apache.logging.log4j" % "log4j-api" % "2.8.2" % "test",
My Testklasse konfiguriert ist als
class ElasticsearchRepositorySpec extends WordSpec with SearchMatchers with
ClassLocalNodeProvider with HttpElasticSugar {
val testClient = http
// injections
val elasticClientProvider = new ElasticClientProvider {
override def client: HttpClient = testClient
}
das HTTP-Objekt folgt aus dem ClassLocalNodeProvider kommen. Ich habe nicht die TcpClient überhaupt verwenden, aber wenn ich auf Kommentar elastic4s-tcp vom build.sbt (oder auf% Testset) der lokale Knoten nicht beim Start mit
uk.gov.ons.addressIndex.server.modules.ElasticsearchRepositorySpec *** ABORTED ***
org.elasticsearch.transport.BindTransportException: Failed to bind to [9300-9400]
at org.elasticsearch.transport.TcpTransport.bindToPort(TcpTransport.java:755)
at org.elasticsearch.transport.TcpTransport.bindServer(TcpTransport.java:720)
Aber wenn ich dies nicht tun Kommentar it out scheitert die Anwendung mit
[error] p.c.s.n.PlayRequestHandler - Exception caught in Netty
java.lang.AbstractMethodError: null
at io.netty.util.ReferenceCountUtil.touch(ReferenceCountUtil.java:73)
at io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:107)
und es scheint, dass ich ein Upgrade benötigen, um 2.6 zu beheben, dies zu spielen, es sei denn, ich meine Tests ohne die Tcp Klassen zu arbeiten zu bekommen.
Die elastische Netty-Version im TCP-Client kollidiert mit einigen Play/Spark-Versionen. Das Testkit verwendet auch TCP, in 7.0.0 wird TCP weg sein. – monkjack