我正在使用 Lagom 1.3.1 [SCALA]
我正在尝试使用 pom.xml 中的必要配置连接到外部 Cassandra 和 kafka。
当我使用 mvn lagom:runAll 启动服务时,出现以下错误
下载:http://.../.../com/lightbend/lagom/lagom-reloadable-server_2.11/1.3.1/lagom-reloadable-server_2.11-1.3.1.pom 下载:http://.../.../com/lightbend/lagom/lagom-reloadable-server_2.11/1.3.1/lagom-reloadable-server_2.11-1.3.1.pom(6 KB,52.8 KB/秒) 下载:http://.../.../com/lightbend/lagom/lagom-service-registration_2.11/1.3.1/lagom-service-registration_2.11-1.3.1.pom 下载:http://.../.../com/lightbend/lagom/lagom-service-registration_2.11/1.3.1/lagom-service-registration_2.11-1.3.1.pom(6 KB,48.1 KB/秒) 下载:http://.../.../com/lightbend/lagom/lagom-reloadable-server_2.11/1.3.1/lagom-reloadable-server_2.11-1.3.1.jar 下载:http://.../.../com/lightbend/lagom/lagom-service-registration_2.11/1.3.1/lagom-service-registration_2.11-1.3.1.jar 下载:http://.../.../com/lightbend/lagom/lagom-reloadable-server_2.11/1.3.1/lagom-reloadable-server_2.11-1.3.1.jar (30 KB at 288.2 KB/秒) 下载:http://.../.../com/lightbend/lagom/lagom-service-registration_2.11/1.3.1/lagom-service-registration_2.11-1.3.1.jar (21 KB at 171.7 KB/秒) 未找到 play.logger.configurator:日志记录必须完全由应用程序配置。 com.google.inject.CreationException: 无法创建注入器,看到如下错误: 1) 在 com.lightbend.lagom.internal.javadsl.server.ResolvedServices 中找不到合适的构造函数。类必须有一个(并且只有一个)用@Inject 注释的构造函数或一个非私有的零参数构造函数。 在 com.lightbend.lagom.internal.javadsl.server.ResolvedServices.class(JavadslServerBuilder.scala:95) 同时定位 com.lightbend.lagom.internal.javadsl.server.ResolvedServices 对于 com.lightbend.lagom.internal.server.ServiceRegistrationModule$RegisterWithServiceRegistry.(ServiceRegistrationModule.scala:54) 的参数 1 在 com.lightbend.lagom.internal.server.ServiceRegistrationModule.bindings(ServiceRegistrationModule.scala:28): 绑定(类 com.lightbend.lagom.internal.server.ServiceRegistrationModule$RegisterWithServiceRegistry 急切地自我)(通过模块:com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1 ) 2) 在 com.lightbend.lagom.javadsl.api.ServiceInfo 中找不到合适的构造函数。类必须有一个(并且只有一个)用@Inject 注释的构造函数或一个非私有的零参数构造函数。 在 com.lightbend.lagom.javadsl.api.ServiceInfo.class(ServiceInfo.java:51) 同时定位 com.lightbend.lagom.javadsl.api.ServiceInfo 对于 com.lightbend.lagom.internal.javadsl.registry.ServiceRegistryClientProvider.serviceInfo(ServiceRegistryModule.scala:62) 的字段 在 com.lightbend.lagom.internal.javadsl.registry.ServiceRegistryModule.configure(ServiceRegistryModule.scala:35) (通过模块:com.google.inject.util.Modules$OverrideModule -> com.lightbend.lagom.internal.javadsl。 registry.ServiceRegistryModule) 2 个错误 在 com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466) 在 com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155) 在 com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
我没有在我的代码中使用 Guice 模块,而是利用 scala 使用“macwire”连接依赖项的方式。然而,lagom 的“服务注册”模块依赖于使用 guice 进行布线的 javadsl。
关于如何解决这个问题的任何想法?
我父 pom 中的 Maven 依赖项:
<properties>
<scala.version>2.11.8</scala.version>
<scala.binary.version>2.11</scala.binary.version>
<lagom.version>1.3.1</lagom.version>
<macwire.version>2.2.5</macwire.version>
.....
</properties>
<dependencies>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-server_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.play</groupId>
<artifactId>play-netty-server_${scala.binary.version}</artifactId>
<version>${play.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-api_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-persistence_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-logback_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-testkit_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-integration-client_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-pubsub_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-persistence-cassandra_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-scaladsl-dev-mode_${scala.binary.version}</artifactId>
<version>${lagom.version}</version>
</dependency>
<dependency>
<groupId>com.softwaremill.macwire</groupId>
<artifactId>macros_${scala.binary.version}</artifactId>
<version>${macwire.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_${scala.binary.version}</artifactId>
<version>2.8.7</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_${scala.binary.version}</artifactId>
<version>3.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.holdenkarau</groupId>
<artifactId>spark-testing-base_2.10</artifactId>
<version>2.0.0_0.4.4</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
Maven Lagom 插件配置:
<plugin>
<groupId>com.lightbend.lagom</groupId>
<artifactId>lagom-maven-plugin</artifactId>
<version>${lagom.version}</version>
<configuration>
<lagomService>true</lagomService>
<unmanagedServices>
<cas_native>http://ip-address:9042</cas_native>
</unmanagedServices>
<cassandraEnabled>false</cassandraEnabled>
<kafkaAddress>ip-address:9092</kafkaAddress>
<kafkaEnabled>false</kafkaEnabled>
</configuration>
</plugin>