我将客户端的应用程序从Windows Server 2012 R2上托管的旧Tomcat VM迁移到新的CentOS 7 VM,后者受到了勒索软件攻击。当我尝试使用查询本地MySQL
数据库的搜索功能时,就会出现我的问题。我的SQL知识很有限,因此,我很高兴能从您那里获得明智和经验丰富的编码员的帮助。这是我遇到的错误:
在searchresults.jsp
中,引用的行是:
<!-- Find Diacritic Terms -->
<c:set var="dsqlstatement">
SELECT *
FROM diacritic_map
WHERE alternate LIKE '%<%= t %>%'
</c:set>
<sql:query var="rs_diacritics" dataSource="jdbc/balanchine">
${dsqlstatement}
</sql:query>
我已经测试并验证了数据库连接是否有效,所以这可能与SQL语句本身有关吗?好吧,我在生产服务器上进行了检查,该声明确实是相同的并且可以正常运行,所以现在我的想法已经用完了。如果该信息有用,我将使用MySQL版本8.0.15,Tomcat版本9.0.16和Java
版本1.8.0_191。
在此先感谢您提供的帮助。
编辑1:感谢@Selaron的建议这里是完整的堆栈跟踪
编辑2:谢谢@vancleff。这是我修改以测试数据库连接的示例应用程序。我仍然遇到错误,但是现在不同了,因为我按照您的建议将mysql-connector-java-5.0.x-bin.jar文件放置在webapp的lib文件夹中。这有助于解决上一个错误,但是现在我仍然得到类似的信息。它还显示在所有这些文件中我仍然有Windows行尾,因此我在webapp的目录上运行了dos2unix。感谢您指出这一点!
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<html>
<head>
<title>Sample Application JSP Page</title>
</head>
<body bgcolor=white>
<table border="0">
<tr>
<td align=center>
<img src="images/tomcat.gif">
</td>
<td>
<h1>Sample Application JSP Page</h1>
This is the output of a JSP page that is part of the Hello World application.
</td>
</tr>
</table>
<%= new String("Hello!") %>
<h1>Connection Status</h1>
<%
try{
String connectionURL = "jdbc:mysql://localhost:3306/DatabaseName-REDACTED";
Connection connection = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, "User-REDACTED", "Password-REDACTED");
if(!connection.isClosed())
out.println("Successfully connected to " + "MySQL server using TCP/IP...");
connection.close();
}catch(Exception e){
out.println("Unable to connect to database.\n"+e);
}%>
</body>
</html>
新错误:
答案 0 :(得分:0)
从here下载mysql-connector.jar并将其添加到您的类路径中再添加一遍
<sql:setDataSource var="datasrc" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dbname"
user="root"
password="pass"
/>
<sql:query var="rs_diacritics" dataSource="${datasrc}">
${dsqlstatement}
</sql:query>
似乎您尚未将mysql jar添加到类路径中,并且未正确初始化数据源。另外,请确保上传文本日志,而不是照片/屏幕截图。它们不可读:)
此外,将jar粘贴到lib内并添加到classpath:
WebContent
|
|__WEB-INF
|
|__lib
|
|__mysql-connector-java-5.0.x-bin.jar