【问题标题】:Openshift - No suitable driver found for jdbc:mysqlOpenshift - 找不到适合 jdbc:mysql 的驱动程序
【发布时间】:2015-10-02 03:20:55
【问题描述】:

我是 Java 和 Servlet 编程的新手。我正在尝试托管一个在 localhost 中成功运行的简单应用程序。但是当我将它托管到 Openshift 时,它会显示 No suitable driver found for jdbc:mysql://127.12.204.2:3306/shifar 。 我要做的就是将一个字符串保存到数据库中。 这是我的代码

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    private static final String
     HOST = System.getenv("OPENSHIFT_MYSQL_DB_HOST"),
     PORT = System.getenv("OPENSHIFT_MYSQL_DB_PORT"),
     USERNAME = System.getenv("OPENSHIFT_MYSQL_DB_USERNAME"),
     PASSWORD = System.getenv("OPENSHIFT_MYSQL_DB_PASSWORD"),
     DB_NAME = "shifar";

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String name = request.getParameter("userName");
        PrintWriter pw = response.getWriter();

        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            pw.println("Error while loading driver: "+e.getMessage());
        }

        try {
            String url = "jdbc:mysql://" + HOST + ":" + PORT +
                    "/" + DB_NAME;

            Connection con = DriverManager.getConnection(url, USERNAME, PASSWORD);
            PreparedStatement prep = con.prepareStatement("INSERT INTO names (name) VALUE (?)");
            prep.setString(1, name);
            int rc = prep.executeUpdate();
            pw.println("Name saved !:"+name+" @ "+ rc);
        } catch (SQLException e) {
            pw.println("Error while connecting: "+e.getMessage());
        }


    }

}

我无法弄清楚错误:(。应用程序的部署是通过Git as .WAR 完成的

Live Preview - (在编辑文本中输入内容并提交)

【问题讨论】:

    标签: java mysql servlets jdbc openshift


    【解决方案1】:

    您的 servlet 容器需要按自己的方式访问 jar 文件。例如 Tomcat 可能需要类似mysql-connector-java-5.1.35-bin.jar 在应用程序下的 web-inf 文件夹中。无论是什么,您都需要专注于类路径和 servlet 容器的设置。

    如果您需要进一步的帮助,请在此下方提出问题并提供更多详细信息。

    【讨论】:

    • 天啊!你救了我,非常感谢德鲁。 (我正在使用 Eclipse)我所做的是 **Project Properties -> Deployment Assembly -> ** 并添加了 mysql-connector-*-*-* 。完成。
    猜你喜欢
    • 2016-11-28
    • 2014-08-05
    • 1970-01-01
    • 2018-12-13
    • 2015-09-22
    • 2019-10-16
    • 2016-10-01
    • 2012-05-08
    • 2017-08-26
    相关资源
    最近更新 更多