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')