2017-11-24 7 views
1

레거시 Java 응용 프로그램의 LagomClientFactory를 사용하여 Lagom REST 서비스를 사용하려고합니다.Lagom 서비스 클라이언트를 사용하면 구현이 누락되어 실패합니다.

LagomClientFactory clientFactory = 
    LagomClientFactory.create("legacy-system", LagomClient.class.getClassLoader()); 
DeviceDetectionService serviceClient = 
    clientFactory.createDevClient(DeviceDetectionService.class, URI.create("http://localhost:8000")); 

이 스레드에서 예외와 함께 실패 "기본"java.lang.IllegalArgumentException가 : 나는이 Lagom 자바 클라이언트와 추가 서비스

를 구현하지 않는 서비스를로드하는 방법을 몰라 클라이언트가 서비스의 구현을 찾는 이유 실제로

<dependency> 
    <groupId>com.lightbend.lagom</groupId> 
    <artifactId>lagom-javadsl-integration-client_2.11</artifactId> 
    <version>1.3.10</version> 
</dependency> 

<dependency> 
    <groupId>com.example.wd</groupId> 
    <artifactId>wt-wd-device-detection-api_2.11</artifactId> 
    <version>0.1.0-SNAPSHOT</version> 
</dependency> 

가 이해가 안하십시오 dependeny로 서비스의 API?

+0

안녕하세요 @ christianonline,'DeviceDetectionService'가'서비스를 구현하지 않습니다 '가능한가요? 'DeviceDetectionService'가 인터페이스이고'descriptor'라는 기본 메소드를 가지고 있어도, _to는'서비스를 구현합니다 '. https://github.com/lagom/lagom/blob/e53bda5fd2f83aaa4cd639c9ad27d6053ede812f/service/javadsl/client/src/main/scala/com/lightbend/lagom/internal/javadsl/client/ServiceClientLoader.scala#L21 – ignasi35

+0

을 참조하십시오. 스칼라 또는 Java 서비스 디스크립터에 대한 서비스를 제공합니까? –

+0

실제 서비스는 Scala에서 구현됩니다. 'trait DeviceDetectionService extends Service' – christianonline

답변

0

현재 Java로 구현 된 클라이언트의 Scala로 작성된 Lagom 서비스 특성을 사용할 수 없습니다.

이 시점에서 가장 좋은 해결 방법은 Java와 Scala에서 중복 서비스 API 아티팩트를 제공하는 것입니다.