Openshift - 找不到适合 jdbc:mysql 的驱动程序

Posted

技术标签:

【中文标题】Openshift - 找不到适合 jdbc:mysql 的驱动程序【英文标题】:Openshift - No suitable driver found for 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 - (在编辑文本中输入内容并提交)

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

天啊!你救了我,非常感谢德鲁。 (我正在使用 Eclipse)我所做的是 **Project Properties -> Deployment Assembly -> ** 并添加了 mysql-connector-*-*-* 。完成。

以上是关于Openshift - 找不到适合 jdbc:mysql 的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Openshift 无法加载 c++ bson 扩展/找不到模块('swig')

使用多个帐户的 OpenShift rhc 设置

Bower:找不到适合 Angular 的版本

找不到适合 jdbc mysql 的驱动程序?

这是啥错误? “无法添加数据连接。找不到任何适合指定文化或中性文化的资源。”

找不到适合指定文化或中性文化的任何资源