amazon lambda timezome mysql java问题

amazon lambda timezome mysql java问题,java,mysql,aws-lambda,Java,Mysql,Aws Lambda,所以我正在学习AmazonLambda,看看是否可以让Alexa(AmazonEcho)与MySQL后端通信。我设置了一个面向公众的AmazonRDS,并设置了一个简单的java处理程序,通过DriverManager设置jdbc连接 使用mysql的Java库,我使用DriveManager#getConnection方法创建了一个连接。在本地,这是可行的,我的查询将返回我期望的结果。但是,当我将处理程序上载到Amazon Lambda控制台并对其进行测试时,我得到了以下错误原因: "caus

所以我正在学习AmazonLambda,看看是否可以让Alexa(AmazonEcho)与MySQL后端通信。我设置了一个面向公众的AmazonRDS,并设置了一个简单的java处理程序,通过DriverManager设置jdbc连接

使用mysql的Java库,我使用DriveManager#getConnection方法创建了一个连接。在本地,这是可行的,我的查询将返回我期望的结果。但是,当我将处理程序上载到Amazon Lambda控制台并对其进行测试时,我得到了以下错误原因:

"cause": {
  "errorMessage": "java.lang.NullPointerException",
  "errorType": "java.lang.NullPointerException",
  "stackTrace": [
    "java.util.Properties$LineReader.readLine(Properties.java:434)",
    "java.util.Properties.load0(Properties.java:353)",
    "java.util.Properties.load(Properties.java:341)",
    "com.mysql.cj.jdbc.util.TimeUtil.loadTimeZoneMappings(TimeUtil.java:163)",
    "com.mysql.cj.jdbc.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:109)",
...

我用谷歌搜索了一下,找到了。似乎需要在运行代码的服务器上定义属性文件。我的问题是,是否有其他人试图通过AmazonLambda使用JDBC连接到mysql服务器,或者是否每个人都只使用NodeJS或Python而不是java。如果是这样,是否有人找到了解决方法,或者我做错了什么?

这里只是一个小方向。我没有使用过这个,但是在使用Java8Lambda时遇到了类似的问题。尝试将JDBC实用程序所需的属性文件添加到zip文件的根目录中。当然,这是假设您发现了该属性文件的外观。请记住,lambda实际上没有太多的加载,就像第三方jar文件一样,您需要提供所有内容。因此,我找到了一个解决方法。我将“&useLegacyDatetimeCode=false&serverTimezone=UTC”添加到我的jdbc url中,得到了预期的结果。我不得不那样做真是太傻了。说到你的观点,Chewy,我确实看了一下,属性文件在我的包中包含的jar文件中,看起来路径完全不同。我的jar路径是“com/mysql/cj/jdbc/util/TimeZoneMapping.properties”。我不知道“cj”是从哪里来的,但我打赌这就是问题的根源。不过,谢谢你为我指明了方向。