无效处理程序的本地无服务器调用-InvokeBridge异常

时间:2018-11-23 05:13:54

标签: serverless-framework aws-serverless

运行“ mvn软件包”以生成有效的,更新的.jar文件后,尝试在本地调用我的任何函数时出现错误:

> serverless invoke local --function getExternalXMLData

Serverless: In order to get human-readable output, please implement "toString()" method of your "ApiGatewayResponse" object.

java.lang.IllegalAccessException: Class com.serverless.InvokeBridge cannot access a member of class java.lang.Void with modifiers "private"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
at java.lang.Class.newInstance(Class.java:436)
at com.serverless.InvokeBridge.invoke(InvokeBridge.java:68)
at com.serverless.InvokeBridge.<init>(InvokeBridge.java:36)
at com.serverless.InvokeBridge.main(InvokeBridge.java:133)

这些都是部署到生产中的所有工作功能。这是接收该错误的Handler的简短示例。它进行了一些后台处理,并且输入和输出均为Void:

public class ExternalXMLHandler implements RequestHandler<Void, Void> {

    @Override
    public Void handleRequest(final Void input, final Context context) {
        System.out.println("handleRequestExecuted");
        return null;
    }

}

我可以调用实时版本,但是不能执行本地调用。我可以通过摆脱RequestHandler中的Voids来避免错误,但这不是这些函数的工作方式。这是怎么回事,如何使本地调用起作用?

1 个答案:

答案 0 :(得分:1)

该问题已存在,由开发人员解决。请点击以下链接:

https://github.com/serverless/serverless/issues/4415