我的毕设做的是搜索引擎。。现在前期工作都差不多了,就是最后将应用部署到tomcat中的时候出现了问题。。本人对JAVA,JSP等不怎么了解,懂得很少,遇到错误也不怎么会解决,忘高手指点,不胜感激。。错误如下:HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 59 in the jsp file: /s.jsp
CharacterHandle cannot be resolved
56:    <div id="result" class="result" style="visibility:hidden">
57:    <%
58:      // 提取关键字
59:      String keys = CharacterHandle.trans(param);
60:      String[] results = new Query().getQueryResult(keys.split(" "));
61:      // 结果总数
62:      int length = results.length;
An error occurred at line: 60 in the jsp file: /s.jsp
Query cannot be resolved to a type
57:    <%
58:      // 提取关键字
59:      String keys = CharacterHandle.trans(param);
60:      String[] results = new Query().getQueryResult(keys.split(" "));
61:      // 结果总数
62:      int length = results.length;
63:      // 显示记录的启示序号
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.

解决方案 »

  1.   

    CharacterHandle类 在jsp中import了吗?<%@ page import="com.xxx.CharacterHandle" %>
      

  2.   

    如上所述,或者"CharacterHandle"拼写错误,是不是结尾少个"r"(CharacterHandle+"r")?
      

  3.   


    我把jsp中的内容粘贴过来帮忙看看啊,你说的那个characterHandle已经包含在红色部分的那个包中了。。具体代码如下:%@ page language="java" pageEncoding="GB2312"%>
    <jsp:directive.page import="java.lang.Integer"/>
    <jsp:directive.page import="cn.edu.njut.search.util.*"/>   
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>NJUT Search Engine</title>
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">


      </head>
      
      <body>
     
       <div>
       <table width=600>
        <tr>
         <td valign="middle">
         <a href="index.html"><img vspace="0" hspace="0" border="0" src="img/head_01.jpg"></a>
         </td>
         <td height="80px">
         <table height="80px">
         <tr><td valign="bottom"><font size="2" face="Verdana">南京工业大学搜索引擎&nbsp;Search Engine of Beijing Forestry University</font></td></tr>
         <tr><td>
         <form action="s.jsp" method="GET">
            <input type="text" name="keys" size=36 maxlength="100">&nbsp;&nbsp;<input type="submit" value="搜索">
         </form>
         </td></tr>
         </table>
         </td>
        </tr>
       </table>
       </div>
       <div><hr></div>
       <div id="inf" class="inf" style="visibility:visible"><font face="Verdana">Loading...</font></div>
       <div class="inf">
       <%
          String param = request.getParameter("keys");
      param = new String(param.getBytes("iso-8859-1"), "gb2312");
      out.print("您提交的关键字:" + param);
        %>
       </div>
       <div><h2>查找结果</h2></div>
       <div id="result" class="result" style="visibility:hidden">
       <%
         // 提取关键字
         String keys = CharacterHandle.trans(param);
         String[] results = new Query().getQueryResult(keys.split(" "));
         // 结果总数
         int length = results.length;
         // 显示记录的启示序号
         int start = 1;
         // 显示记录的终止序号
         int end = 0;
         // 提取显示页数,如果为空,表示从第一页显示
         if(request.getParameter("page") != null){
          start = Integer.parseInt(request.getParameter("page"));
         }
         // 计算页数同序号的对应关系
         start = (start - 1) * 10;
         end = start + 10;
         
         if(end >= length){
          end = length;
         }
         // 从返回的查询结果中提取需要显示的部分
         for(int i = start; i < end; i++){
          int position = results[i].indexOf("|");
          String title = results[i].substring(0, position);
          String url = results[i].substring(position + 1, results[i].indexOf("|", position + 1));
          position = results[i].indexOf("|", position + 1);
          String context = results[i].substring(position + 1);
          context = context.replace(" ", "");  
          context = context.replace("&nbsp;", " ");
          String summary = "";
          String[] k = keys.split(" ");
          int maxChar = 100;
          int l = k.length;
          int summaryStart = 0;
          int summaryEnd = 0;
          // 单关键字
          if(l == 1){
          summaryStart = context.indexOf(k[0]) + k[0].length();
          summaryEnd = summaryStart + maxChar;
          if(summaryEnd > context.length()){
          summaryEnd = context.length();
          }
          summary = context.substring(summaryStart, summaryEnd);
          // 将关键字置位红色
          summary = "<font color=\"#FF0000\">" + k[0] + "</font>" + summary;
          }
          // 多关键字
          else{
          int count = maxChar / l;
          if(count < 5){
          count = 5;
          }
          for(int j = 0; j < l; j++){
          summaryStart = context.indexOf(k[j]) + k[0].length();
          summaryEnd = summaryStart + count;
          if(summaryEnd > context.length()){
              summaryEnd = context.length();
              }
          if("".equals(summary)){
          summary = "<font color=\"#FF0000\">" + k[j] + "</font>" + context.substring(summaryStart, summaryEnd);
          }
          else{
          summary = summary + "..." + "<font color=\"#FF0000\">" + k[j] + "</font>" + context.substring(summaryStart, summaryEnd);
          }
          
          }
          }
          // 输出查询结果
          out.print("<font color=\"#0033CC\">" + title + "</font><br />");
          out.print("<a href=\"http://" + url + "\">" + "<font color=\"#CCCCCC\">" + url + "</font>" + "</a><br />");
          out.print("<font color=\"#008000\">" + summary + "</font><br /><br /><br />");
         }
       %>
       </div>
       <div id="page">
       <%
         // 显示页数导航栏
         for(int j = 0; j <= length; j += 10)
         out.print("<a href=\"s.jsp?keys=" + keys + "&page=" + (j / 10 + 1 ) + "\">[" + (j / 10 + 1 )+ "]</a>&nbsp;");
       %>
       </div>
       
       <%-- 显示结果 --%>
       <script type="text/javascript">
       document.getElementById("inf").style.visibility="hidden";
       document.getElementById("result").style.visibility="visible";
       </script>
       
       
      </body>
    </html>
      

  4.   


    就是这么拼写的。。你也帮忙看看这个jsp程序吧,我实在是看不懂啊。。万分感谢。。
      

  5.   

    看看你WEB-INF/lib目录下有没有cn.edu.njut.search.util这个包……
      

  6.   


    不好意思,好像我还没法上传图片。。在我的工程目录下,这个包是放在了JAVA RESOURCES/src下的。。当然我这个工程类型为Dynamic Web Project 然后其他的文件比如.html , .jsp等文件都是在WEB-INF下的,我是照书上来的。。整个工程都没报错。。
      

  7.   

    我是说你的web server下这个工程的WEB-INF/lib目录下有没有这个包。比如你用的是tomcat,则看看tomcat_home/webapps/your_project_name/WEB-INF/lib下