无法从AWS Lambda连接到AWS RDS MySql DB。 ClassNotFoundException:com.mysql.jdbc

时间:2019-04-11 04:00:19

标签: java mysql jdbc aws-lambda api-gateway

我正在使用maven项目,并在pom.xml文件中添加了mysql连接器依赖性,因此我能够正确地访问RDS MySql数据库。 但是,当我将maven构建jar部署到AWS Lambda并尝试使用API​​ Gateway调用来实现该功能时,它在cloudwatch中显示以下错误。

*Error :*
com.mysql.jdbc.Driver: java.lang.ClassNotFoundException
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.project.Apigateway.App.handleRequest(App.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)

我不明白为什么在将项目jar部署到AWS Lambda时无法解决依赖关系。 请帮我提出您的宝贵建议。

    public Connection makeJDBCConnection() throws ClassNotFoundException {

            try {
                Class.forName("com.mysql.jdbc.Driver");
                String userName = "*****";
                String password = "*****";
                String dbName = "user";
                String jdbcUrl = "jdbc:mysql://savetemp.cga2ptefm4rq.ap-south-1.rds.amazonaws.com:3306/" + dbName + "?user="
                        + userName + "&password=" + password;
                crunchifyConn = DriverManager.getConnection(jdbcUrl);
                if (crunchifyConn != null) {
                    connected = true;
                }
            } catch (Exception ex) {
                System.out.println("MySQL Connection Failed!" + ex);
            }
            return crunchifyConn;

        }

1 个答案:

答案 0 :(得分:0)

确保已安装this软件包。