Spring Cloud Function AWS Sample无法在本地运行

时间:2018-07-13 14:16:47

标签: spring function amazon-web-services cloud sample

我正在尝试在本地运行Spring Cloud Function AWS示例,但遇到NullPointerException。相同的示例在AWS Lambda中工作,因此我必须在本地做错什么。

我注意到的一件事是“ initialize”函数没有在本地被调用,因此“ props”为null导致NPE。

示例代码:https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-samples/function-sample-aws 构建系统:Maven

POST URL:localhost:8080或localhost:8080 / function(都给出错误) POST正文:{“ value”:“ test”}

IDE中的异常:     2018-07-13 09:12:36.400错误18733-[nio-8080-exec-6] oaccC [。[。[/]。[dispatcherServlet]:Servlet [dispatcherServlet]的Servlet.service()路径[]引发异常[请求处理失败;嵌套异常是具有根本原因的java.lang.NullPointerException]

java.lang.NullPointerException:空     在example.Config.lambda $ function $ 0(Config.java:46)〜[classes /:na]     在org.springframework.cloud.function.core.FluxFunction.lambda $ apply $ 0(FluxFunction.java:47)〜[spring-cloud-function-core-2.0.0.BUILD-20180713.120611-189.jar:2.0.0。搭建快照]     在react..core.publisher.FluxMapFuseable $ MapFuseableSubscriber.onNext(FluxMapFuseable.java:107)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.FluxIterable $ IterableSubscription.fastPath(FluxIterable.java:312)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.FluxIterable $ IterableSubscription.request(FluxIterable.java:199)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.FluxMapFuseable $ MapFuseableSubscriber.request(FluxMapFuseable.java:156)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.MonoNext $ NextSubscriber.request(MonoNext.java:102)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.BlockingSingleSubscriber.onSubscribe(BlockingSingleSubscriber.java:49)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.MonoNext $ NextSubscriber.onSubscribe(MonoNext.java:64)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.FluxMapFuseable $ MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:90)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     at react.core.publisher.FluxIterable.subscribe(FluxIterable.java:140)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:64)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在react..core.publisher.FluxMapFuseable.subscribe(FluxMapFuseable.java:63)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在react..core.publisher.MonoNext.subscribe(MonoNext.java:40)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.FluxSourceMono.subscribe(FluxSourceMono.java:46)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在Reactor.core.publisher.Flux.blockFirst(Flux.java:2012)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]     在org.springframework.cloud.function.web.flux.response.FluxReturnValueHandler.handleReturnValue(FluxReturnValueHandler.java:154)〜[spring-cloud-function-web-2.0.0.BUILD-20180713.120753-180.jar:2.0.0 .BUILD-SNAPSHOT]     在org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:119)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:661)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:742)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)〜[tomcat-embed-websocket-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)〜[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)〜[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)上[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:790)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1468)[tomcat-embed-core-8.5.31.jar:8.5.31]     在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)上[tomcat-embed-core-8.5.31.jar:8.5.31]     在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0_171]     在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_171]     在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)[tomcat-embed-core-8.5.31.jar:8.5.31]     在java.lang.Thread.run(Thread.java:748)[na:1.8.0_171]     禁止:java.lang.Exception:#block因错误终止         在Reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:93)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]         在react..core.publisher.Flux.blockFirst(Flux.java:2013)〜[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]         ...省略了50个共同的框架

1 个答案:

答案 0 :(得分:0)

我不是Spring Cloud Function专家,但是如果您最终尝试为无服务器架构找到另一个框架,请尝试“无服务器框架”。它被许多玩家广泛使用:https://serverless.com/