0

我正在尝试使用 Lagom 来检查如何调用和call。我正在关注 lagom 的教程。我创建了一个新服务并使用以下网址打开了网址,但出现错误pathCallnamedCall

使用的 URL(我希望看到 hello2 响应)

http://localhost:9000/

错误

GET\Q/stream\EService: hello-stream (http://0.0.0.0:58322)
2GET\Q/api/hello/\E([^/]+)Service: hello (http://0.0.0.0:57797)
3POST\Q/api/hello/\E([^/]+)Service: hello (http://0.0.0.0:57797)
**4POST\Q/hello2\EService: hello (http://0.0.0.0:57797)**

我已完成以下步骤

下载模板后(参见https://www.lagomframework.com/documentation/1.3.x/scala/IntroGetStarted.html),我更改了代码以添加新的服务调用(称为 hello2)。以下是我在 HelloService.scala 中添加的代码

named("hello")
      .withCalls(
        pathCall("/api/hello/:id", hello _),
        pathCall("/api/hello/:id", useGreeting _),
        call(hello2) //added this line in default template.
      )

我已将 hello2 定义为(在 HelloService.scala 中)

def hello2: ServiceCall[String, String]

HelloServiceImpl.scala 中的代码是

override def hello2 = ServiceCall {
    Future.successful("Hello2")
  }

Questin 1 - 错误是什么(我想我没有从浏览器正确调用服务)?

4

1 回答 1

2

当您说“我想我没有从浏览器正确调用服务”时,您的意思是您只是在浏览器中导航到 URL?如果是这样,这将不起作用,因为 hello2 被定义为 POST 端点,并且您的浏览器将发送 GET 请求。

hello2 被定义为 POST 端点,因为在您的 ServiceCall 定义中它需要一条请求消息。(有关更多信息,请参阅https://www.lagomframework.com/documentation/1.3.x/java/ServiceDescriptors.html。)

如果您将请求消息类型从 更改为StringNotUsed则 Lagom 应该开始生成 GET 端点。

于 2017-08-03T10:01:29.860 回答