处理searchresults.jsp时发生异常

时间:2019-02-27 19:30:20

标签: mysql jsp tomcat

我将客户端的应用程序从Windows Server 2012 R2上托管的旧Tomcat VM迁移到新的CentOS 7 VM,后者受到了勒索软件攻击。当我尝试使用查询本地MySQL数据库的搜索功能时,就会出现我的问题。我的SQL知识很有限,因此,我很高兴能从您那里获得明智和经验丰富的编码员的帮助。这是我遇到的错误:

Error message

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的建议这里是完整的堆栈跟踪

stacktrace

编辑2:谢谢@vancleff。这是我修改以测试数据库连接的示例应用程序。我仍然遇到错误,但是现在不同了,因为我按照您的建议将mysql-connector-java-5.0.x-bin.jar文件放置在webapp的lib文件夹中。这有助于解决上一个错误,但是现在我仍然得到类似的信息。它还显示在所有这些文件中我仍然有Windows行尾,因此我在webapp的目录上运行了dos2unix。感谢您指出这一点!

db connection test

<%@ 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>

新错误: enter image description here enter image description here

1 个答案:

答案 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