【问题标题】:An exception occurred in processing searchresults.jsp处理 searchresults.jsp 时发生异常
【发布时间】: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
  • 请编辑您的问题并添加完整的堆栈跟踪。来自日志文件的堆栈跟踪可能比浏览器中显示的更完整。

标签: mysql jsp tomcat


【解决方案1】:

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 中并添加到类路径中:

WebContent
         |
         |__WEB-INF
                  |
                  |__lib
                       |
                       |__mysql-connector-java-5.0.x-bin.jar

【讨论】:

  • 感谢您的回复!抱歉,我花了很长时间才做出响应,但我之前确实下载了连接器,将其添加到我的类路径中,并通过修改示例“Hello World”应用程序对其进行了测试。我将使用代码和屏幕截图编辑原始帖子。不过谢谢你的建议!我认为我们正在缩小问题的症结。
  • 另外,我其实并没有这么说,但是数据源实际上是按照你描述的方式和sql语句设置在同一个文件中的。在它和引发异常的语句之间只有很多代码,所以我不想发布很多不必要的信息。再次感谢您抽出宝贵时间提供帮助:)
  • 在您的日志中,它说 mysql 驱动程序不在类路径中,请参阅此处解决此问题 - stackoverflow.com/questions/29263498/…
猜你喜欢
  • 1970-01-01
  • 2020-05-17
  • 2016-04-22
  • 1970-01-01
  • 2013-08-13
  • 2014-09-14
  • 2016-11-24
  • 1970-01-01
相关资源
最近更新 更多