我要用JavaBean实现搜索引擎,但是总是出现这样的问题,提示好像是一个rsSort函数无法解析,请高手帮忙看看HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 138 in the jsp file: /showPage.jsp
Generated servlet error:
myBean.rsSort cannot be resolved or is not a fieldAn error occurred at line: 138 in the jsp file: /showPage.jsp
Generated servlet error:
myBean.rsSort cannot be resolved or is not a fieldAn error occurred at line: 138 in the jsp file: /showPage.jsp
Generated servlet error:
myBean.rsSort cannot be resolved or is not a field
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 138 in the jsp file: /showPage.jsp
Generated servlet error:
myBean.rsSort cannot be resolved or is not a fieldAn error occurred at line: 138 in the jsp file: /showPage.jsp
Generated servlet error:
myBean.rsSort cannot be resolved or is not a fieldAn error occurred at line: 138 in the jsp file: /showPage.jsp
Generated servlet error:
myBean.rsSort cannot be resolved or is not a field
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.17

解决方案 »

  1.   

    可能应该是:myBean.rsSort => myBean.rsSort()
      

  2.   

    这是我的代码,能帮我看看怎么弄么???这是jsp代码<jsp:useBean id="Bean" class="net.netsky.SearchBean" scope="session"/> 
    <jsp:setProperty name="Bean" property="keyWord" param="information"/>
    <%//<jsp:setProperty name="Bean" property="sortFlag" param="sort"/>
    %>
    <% String keyWord;%>  
    <%int sortFlag;%>
    <%int pages; %>
    <%  
    if(request.getParameter("pages")==null) { 
    pages=1; 

    else 

    pages = new Integer(request.getParameter("pages")).intValue(); 

    Bean.setPageCounter(pages);
    %><%if(request.getParameter("information")!=null){
    keyWord=request.getParameter("information");
    Bean.setKeyWord(keyWord);
    }
    else{
    keyWord=Bean.getKeyWord();
    }
    %><%if(request.getParameter("sort")!=null){
    sortFlag=new Integer(request.getParameter("sort")).intValue();
    Bean.setSortFlag(sortFlag);
    }
    else{
    sortFlag=Bean.getSortFlag();
    }
    %><form action="showPage.jsp" method="post" name="allVal">
    <img src="image/logoyy.gif" width="137" height="46">
    <input name="information" size=40" style="height: 25px" maxlength="100" value="<%=Bean.keyWord %>">
    <input type="submit" name="submit" value="Dog搜索" style="height: 30px; width: 80px" >
    <input type="checkbox" name="se" value="1" checked="checked" size="30"/>Google搜索引擎
    <input type="checkbox" name="se" value="2" checked="checked"/>Yahoo 搜索引擎 <%keyWord=Bean.getKeyWord(); 
      if(keyWord==null){
     %>
     <jsp:forward page="index.jsp"/>
     <%} %><table width="983" border="0" bgcolor="lavender">
    <tr><td>
    <font size="2" color="burlywood"><b>搜索:</b></font>
    <font size="2" color="crimson"><i><%=Bean.getKeyWord() %></i></font><%
    sortFlag= Bean.getSortFlag(); %>
    <%Bean.search(); %>
    <%---- 
    <%Bean.ySearch(); %>
    <%Bean.gSearch(); %>
    ------%>
        <%---调用bean中的搜索函数 ---%>
    <%--= Bean.getKeyWord()---%>
    &nbsp&nbsp<font size="2" color="burlywood">搜索结果如下:</font>
    </td>
    <td align="right">
    </td>
    </tr>
    </table>
    </form><%-------------旧的输出 
     <% myBean.setGInitIndex();
      myBean.setInitIndex();
      myBean.getReadResult();%>
      <table width="700" border="0">
      <%for(int i=0;i<10;i++){;
      %>
      <tr><td>
      <a href= <%= myBean.getUrl() %> target="_blank"/>
      <% out.println(myBean.getTitle());%></a>
      <br>
      <% out.println(myBean.getContent());%>
      <br>
      <font color="darkgray">
      <%out.println(myBean.getUrl());%>
      </font>
      <% 
      myBean.setIndexGoNext();
      myBean.getReadResult();
      %>
      <br><br>
      </td></tr>
      <tr><td>
      <a href= <%= myBean.getGUrl() %> target="_blank"/>
      <% out.println(myBean.getGTitle());%></a>
      <br>
      <% out.println(myBean.getGContent());%>
      <br>
      <font color="darkgray">
      <%out.println(myBean.getGUrl());%>
      </font>
      <%myBean.setGIndexGoNext();%>
      <br><br>
      </td></tr>
      <%}%>
      </table>
      ----------------%>
     
      <%String Url; %>
      <%String Title ;%>
      <%String Content; %>
      <table width="700" border="0">
      <%for (int i=0;i<20;i++){%> 
      <%--- 
      Url=myBean.newresult[i].getUrl();
      Title=myBean.newresult[i].getTitle();
      Content=myBean.newresult[i].getAbstract();
      ---%>
      <% 
      Url=Bean.rsSort.getUrl(sortFlag,i);
      Title=Bean.rsSort.getTitle(sortFlag,i);
      Content=Bean.rsSort.getContent(sortFlag,i);
      %>
      <%
      if(Url!=null){
      %>
      <tr><td>
      <a href=<%=Url %> target="_blank"/>
      <% out.println(Title); %></a>
      <br>
      <font size="3">
      <%out.println(Content); %>
      </font>
      <br>
      <font size="3" color="darkgray">
      <%out.println(Url);%>
      </font>
      <br>
      <br>
      </td></tr>
      <%}%>
      <%} %>
      </table>
    <%---
    <%if (nowPage!=pages) 
          myBean.setPageCounter(pages);
    %>
    ---%>
    <table border="0"  width="983" bordercolor="lavender">
    <tr bgcolor="lavender" height="40"><td>
    <center>
    <%int allpgs; %>
    <%int startTemp; %>
    <%int endTemp; %>
    <%allpgs=Bean.getAllPage(); %>
    <%if(pages!=1){ %>
    <a href="showPage.jsp?pages=<%=pages-1 %>">上一页</a>
    <%} %>
    <%
    if(pages>=1&&pages<10){
    startTemp=1;
    endTemp=10;
    }
    else{
    startTemp=pages-9;
    endTemp=pages+9;
    if(endTemp>allpgs){
    endTemp=allpgs;
    }
    }
    for (int i=startTemp;i<=endTemp;i++) 
    {
    if(pages!=i){%>
    <a href="showPage.jsp?pages=<%= i %>">[<%= i %>]</a>
    <%} else{ %>
    [<%=i %>]
    <%}  } %>
    <%if(pages!=allpgs){%>
    <a href="showPage.jsp?pages=<%=pages+1 %>">下一页</a>
    <%} %>
    </center>
    </td></tr>
    <tr bgcolor="aliceblue"><td style="border-bottom-style: none">
    <br><form action="showPage.jsp" method="post">
    &nbsp&nbsp&nbsp&nbsp<input name="information" size=40" style="height: 25px" maxlength="100" value="<%=Bean.keyWord %>">
    <input type="submit" name="submit" value="Dog搜索" style="height: 30px; width: 80px" >
    </form>
    </td></tr>
    <br>
    <tr bgcolor="lavender"><td style="border-top-style: none">
    <center>
    <font size="2" color="darkgray">此内容系根据您的指令调用Google&Yahoo搜索的结果,不代表DogSearch赞成被搜索网站的内容或立场
    <br>CopyRight&copy;Netsky2007-2008
    </font>
    </center>
    </td></tr>
    </table>
    </body>
    </html>
      

  3.   

    这个是类searchbean的代码public class SearchBean{
    public String yse="0";//选择yahoo搜索引擎 1为选中
    public String gse="0";//选择google搜索引擎 1为选中
    public String keyWord;//要搜索的关键字
    public int pageCounter=1;//页面计数器  记录当前是第几页
    public int allPage;//总共有多少页
    public int allRecord;//总共有多少条记录  多于3000条取3000条 少于3000取实际
    public int prePageRecord=10;//每页显示多少条

    // 新加的                                                                                                                                            
    public NewResult newresult[];//定义原始结果数组
    //public ResultSort resultsort=new ResultSort();//产生一个摘要排序的对象
    public ResultSort rsSort;
    public int sortFlag=0;////标志采用哪个排序算法 0简单排序,1摘要,2位置,3摘要位置
        public int lastFlag=0;///上次使用的排序算法
    //新加结束

    public int yAllRecord;//yahoo总共返回多少条记录
    public String YahooUrl;//yahoo当前结果的Url
    public String YahooTitle;//yahoo当前结果的标题
    public String YahooContent;//yahoo当前结果的摘要
    public int yahooIndex;//记录Yahoo当前结果集中的位置  指针作用
    public WebSearchResults yResults;//结果集
    public SearchClient yClient;//yahoo 客户类
    public WebSearchRequest yRequest;//yahoo搜索请求

    public int gAllRecord;//google总共返回多少条记录
    public GoogleSearch search1;//google search
    public GoogleSearchResult rs;
    public GoogleSearchResultElement results[];///google 结果集
    public int googleIndex;//记录google当前记录集中当前指针的位置
    /////公共的函数
    public SearchBean(){}

    public  void setLastFlag(int flag){
    this.lastFlag=flag;
    }

    public  void initStart(){
    pageCounter=1;
    googleIndex=0;
    gAllRecord=0;
    yahooIndex=0;
    yAllRecord=0;
    allPage=0;
    allRecord=0;
    }

    public  int getSortFlag(){//获取排序标志  看看是采用哪中排序算法
    return this.sortFlag;
    }

    public  void setSortFlag(int flag){//设置排序标志 
    this.sortFlag=flag;
    }

    public  void setYse(String yse){
    this.yse=yse;
    }
    public  String getYse(){
    return this.yse;
    }
    public  void setGse(String gse){
    this.gse=gse;
    }
    public  String getGse(){
    return this.gse;
    }
    public  void setKeyWord(String keyWord){//将页面传过来的关键字写到Bean中
    this.keyWord=keyWord;
    }

    public  String getKeyWord(){
    return keyWord;
    }
    public  void search(){
    int i;
    //rsSort=new ResultSort();
    //rsSort.initnewresult();
    i=ySearch();
    gSearch();///搜索
    computeAllRecord();
    computeAllPage();//计算总页数
    initNewResult(20);
    /*/测试
    for(int j=0;j<20;j++){
    rsSort.newresult[j].Url="http://yahoo.com.cn";
    }
    *////测试结束
    oldToNew();
    rsSort.setQuerystring(keyWord);
    rsSort.sort(sortFlag);//排序
    if(sortFlag!=lastFlag){
    setLastFlag(sortFlag);
    }
    }
        public  int getAllPage(){
         return allPage;
        }
    public  void computeAllPage(){//计算页数
    if(allRecord%prePageRecord==0){
    allPage=allRecord/prePageRecord;
    }
    else{
    allPage=allRecord/prePageRecord+1;
    }
    }
    public  void computeAllRecord(){//计算总记录数,总记录数以小的为准
    if(gAllRecord>yAllRecord){
    allRecord=yAllRecord;
    }
    else{
    allRecord=gAllRecord;
    }
    }
    public  void  setPageCounter(int page){
    this.pageCounter=page;
    }

    public  int getPageCounter(){
    return this.pageCounter;
    }
    // public  void setKeyWord(String keyWord){//将页面传过来的关键字写到Bean中
    // this.keyWord=keyWord;
    // }

    // public  String getKeyWord(){
    // return keyWord;
    // }
    ////////公共函数结束
    ////google部分函数
    public  void gSearch(){////google搜索
    search1=new GoogleSearch();
    search1.setStartResult((pageCounter-1)*10+1);
    rs=new GoogleSearchResult();
    search1.setKey("yEuNBRVQFHKY43eExJBgGd1XdHF/TRTa");
    search1.setQueryString(keyWord);
    search1.setSafeSearch(true);
    try{
    rs=search1.doSearch();
    if(sortFlag!=lastFlag){
    initStart();
    }
    if(pageCounter==1){
    if(rs.getEstimatedTotalResultsCount()>=3000){
    gAllRecord=3000;
    }
    else{
    gAllRecord=rs.getEstimatedTotalResultsCount();
    }
    }
    }
    catch(Exception e){}
    //ResultElement results[] = rs.getResultElements();
    results=rs.getResultElements();
    for(int i=0;i<results.length;i++){
    System.out.println("Title["+i+"]:"+results[i].getTitle()+" Summary:"+results[i].getSummary()+" Url:"+results[i].getURL());
    }
    }

    public  void setGInitIndex(){
    ///初始化google结果集当前指针
    this.googleIndex=0;
    }

    public  String getGTitle(){
    //获取google结果集当前结果的标题
    return results[googleIndex].getTitle();
    }

    public  String getGContent(){
    //获取google结果集当前结果的内容摘要
    return results[googleIndex].getSnippet();
    }

    public  String getGUrl(){
    //获取google结果集当前结果的url
    return results[googleIndex].getURL();
    }

    public  void setGIndexGoNext(){
    ///google当前结果指针向下移动
    if(googleIndex<results.length){
    googleIndex++;
    }
    }
    /////google函数结束


    ///yahoo部分函数
    public  int ySearch(){//yahoo搜索过程
    int iPageCounter=0;
    iPageCounter=(pageCounter-1)*10+1;
    String sPageCounter=new String();
    sPageCounter=sPageCounter.valueOf(iPageCounter);
    BigInteger bPageCounter=new BigInteger(sPageCounter);
            yClient = new SearchClient("4QLMVfrV34Gnxex2aPhUmjSEGK59K3_KqTTHoWrJjqu5rt92UXbhfcg.CPJaMWTUgNw-");
            yRequest = new WebSearchRequest(keyWord);
            yRequest.setStart(bPageCounter);
            try {
             yResults = yClient.webSearch(yRequest);
             if(sortFlag!=lastFlag){
             initStart();
             }
             if(pageCounter==1){
             if(yResults.getTotalResultsAvailable().intValue()>=3000){
             yAllRecord=3000;
             }
             else{
             yAllRecord=yResults.getTotalResultsAvailable().intValue();
             }
             }
             return 1;
               // 
             //System.out.println("Found " + results.getTotalResultsAvailable() +
               //         " hits for java! Displaying the first " +
             //             results.getTotalResultsReturned() + ".");         //   for (int i = 0; i < results.listResults().length; i++) {
            //        WebSearchResult result = results.listResults()[i];
                  //  System.out.println("   " + (i + 1) + ": " + result.getTitle() + " - " +
                 //           result.getUrl());
                //}
                        
            }
            catch (Exception e) {
                System.err.println("Error calling Yahoo! Search Service: " +
                 e.toString());
                e.printStackTrace(System.err);
                return 0;
             }
           // catch (SearchException e) {
                //System.err.println("Error calling Yahoo! Search Service: " +
                 //       e.toString());
                //e.printStackTrace(System.err);
           // }
        }


    public  void setInitIndex(){
    //初始化yahoo结果集指针
    this.yahooIndex=0;
    }

    public  String getTitle(){
    //获取yahoo当前结果的标题
    return YahooTitle;
    }
    public  String getUrl(){
    //获取yahoo当前结果的url
    return YahooUrl;
    }
    public  String getContent(){
    //获取yahoo当前结果的内容摘要
    return YahooContent;
    } public  void setIndexGoNext(){
    //yahoo结果集指针向下移动
    if(yahooIndex<yResults.listResults().length){
    yahooIndex++;
    }
    }
    public  void getReadResult(){
    if(yahooIndex<yResults.listResults().length){
    WebSearchResult yResult = yResults.listResults()[yahooIndex];
    YahooUrl=yResult.getUrl();
    YahooTitle=yResult.getTitle();
    YahooContent=yResult.getSummary();
    }
    }

    public  void getReadResult(int index){
    if(index<yResults.listResults().length){
    WebSearchResult rs=yResults.listResults()[index];
    YahooUrl=rs.getUrl();
    YahooTitle=rs.getTitle();
    YahooContent=rs.getSummary();
    }
    }