【发布时间】:2019-02-27 19:30:20
【问题描述】:
我正在将客户端的应用程序从托管在 Windows Server 2012 R2 上的旧 Tomcat 虚拟机迁移到新的 CentOS 7 虚拟机,因为前者受到勒索软件攻击。当我尝试使用查询本地 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>
新错误:
【问题讨论】:
-
签出this
-
请编辑您的问题并添加完整的堆栈跟踪。来自日志文件的堆栈跟踪可能比浏览器中显示的更完整。