我正在尝试编写一个Micronaut AWS Groovy Lambda,它将HTTPS调用到另一个服务。我已经关注了MN Docs并使用以下方式创建了我的项目:
mn create-function hello-world -lang groovy
这给了我一个骨架“hello-world”项目,我可以运行一个功能测试。
然后我尝试修改Groovy函数(hello.world.HelloWorldFunction
)以注入一个HTTP客户端,目的是在我的函数中调用API:
import static io.micronaut.http.HttpRequest.GET
@Field @Inject @Client("https://www.googleapis.com/books/v1") RxHttpClient httpClient
Maybe<String> helloWorld() {
httpClient.retrieve(GET("/volumes?q=isbn:0747532699"))
.firstElement()
}
完成此操作后,我现在在运行功能测试时遇到异常:
08:51:25.269 [nioEventLoopGroup-1-5] ERROR
i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred:
Failed to inject value for field [httpClient] of class:
hello.world.HelloWorldFunction
Path Taken: HelloWorldFunction.httpClient
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for field [httpClient] of class:
hello.world.HelloWorldFunction
Path Taken: HelloWorldFunction.httpClient
我几乎肯定做错了什么,但我在如何弄清楚什么方面有点亏。感谢任何指针。
非常感谢,
埃德
答案 0 :(得分:0)
找到答案。这是1.0.0.M1
中的错误。它已经在主人中修复了,但是可以通过从源代码构建Micronaut并使用它来解决这个问题。
此外,我发现我正在返回Lambda函数(Maybe<String>
)不支持的类型。从master构建MN并将其更改为支持的返回类型后,现在一切正常。