我正在使用 Eclipse Juno、Java 7、Tomcat 7 和 MySQL 5.5 开发我的第一个 Java EE 项目,目标是创建一个 servlet、一个 JSP 视图和一些模型。但是我有一个连接到servlet内部数据库的大问题。首先,我直接从 servlet 连接,然后调用我创建的 DBConnection 对象,无论如何它不会改变问题,因为我很确定我按照下面的说明正确地完成了它,但仍然存在连接问题:
public class servphilo extends HttpServlet {
ResultSet listeEtat;
DBConnection conn = null;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
conn=new DBConnection();
System.out.println("création objet connexion OK");
} catch(Exception e) {
e.printStackTrace();
}
try {
conn.getDBConnection();
} catch (Exception e) {
e.printStackTrace();
}
this.getServletContext().getRequestDispatcher( "/WEB-INF/view.jsp" ).forward( request, response );
}
}
public class DBConnection {
Connection conn = null;
public DBConnection () {
//System.out.println("objet DBconnection OK");
}
public Connection getDBConnection() throws Exception{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String sUserName="aaa";
String sPwd="bbb";
System.setProperty("java.net.preferIPv4Stack" , "true");
conn = DriverManager.getConnection("jdbc:mysql://localhost/base",sUserName,sPwd);
System.out.println("objet DBconnection OK");
return conn;
}
}
从浏览器正确发送了 JSP 视图,但 Eclipse 的控制台写入了以下消息:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
行 System.setProperty("java.net.preferIPv4Stack" , "true"); 您可以在下面看到的是从经典 Java 类到 IPv4 连接的前一个想法,它运行良好,但现在使用 servletit 却不行。
我们必须在 IPv4 上强制使用 Tomcat 是否存在同样的问题?我能做什么(文件、行等)?谢谢你帮助我。