我要用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
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
<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()---%>
  <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">
    <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©Netsky2007-2008
</font>
</center>
</td></tr>
</table>
</body>
</html>
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();
}
}