【发布时间】:2016-06-09 09:36:25
【问题描述】:
下面的人是我的 JSP,我无法在 Tomcat 上部署它。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import = "org.apache.solr.client.solrj.response.QueryResponse" %>
<%@ page import ="org.apache.solr.common.SolrDocumentList" %>
<%@ page import = "java.util.Iterator" %>
<%@ page import = "org.apache.solr.common.SolrDocument" %>
<%@ page import = "org.apache.solr.client.solrj.response.FacetField" %>
<%@ page import = "org.apache.solr.client.solrj.response.FacetField.Count" %>
<%@ page import = "java.util.List" %>
<%@ page import = "com.google.gson.Gson" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Search Component</h1>
<%! public QueryResponse QryRspnsMain; %>
<div>
<form id="formsearch" name="formsearch" method="post" action="/SearchBoxcComp/hello">
<span><input name="searchWord" class="editbox_search" id="editbox_search" maxlength="120" value="" type="text" style="width:180px; height:20px"/></span>
<input name="button_search" value="search" type="submit" name="submit"/>
<div class="clr"></div>
<%
if(request.getParameter("submit") != null){
QueryResponse QryRspnsMain = (QueryResponse)request.getAttribute("SearchResult");
Gson gson= new Gson();
SolrDocumentList results = QryRspnsMain.getResults();
// Get the Json Object
//*************String Jresponse= gson.toJson(results);
Iterator<SolrDocument> litr = results.iterator();
String res = gson.toJson(results);
for (int i = 0; i < results.size(); ++i) {
out.print("<li>" + res);
}
}
%>
</form>
<div>
<%
if(request.getParameter("submit") != null){
QueryResponse QryRspnsMain = (QueryResponse)request.getAttribute("SearchResult");
Gson gson= new Gson();
SolrDocumentList results = QryRspnsMain.getResults();
List<FacetField> facetList = QryRspnsMain.getFacetFields();
Iterator<FacetField> itr = facetList.iterator();
while(itr.hasNext()) {
FacetField facetField = itr.next();
List<Count> facvalue = facetField.getValues();
for(int i=0; i<facvalue.size(); i++){
System.out.println(facvalue.get(i));
out.print("<li><a href= \"/SearchBoxcComp/FacetServlet?facetFiled=\"" + facvalue.get(i) + "&catlevel=" + facetField.getName());
}
}
}
%>
</div>
</div>
</body>
</html>
部署时出现以下错误:
HTTP 状态 500 - 无法为 JSP 编译类:
输入异常报告
消息无法为 JSP 编译类:
描述服务器遇到阻止它的内部错误 完成此请求。
异常
org.apache.jasper.JasperException:无法为 JSP 编译类:
在生成的java文件的第6行发生错误只有一个类型 可以进口。 org.apache.solr.client.solrj.response.QueryResponse 解析为一个包
在生成的java文件的第9行发生错误只有一个类型 可以进口。 org.apache.solr.client.solrj.response.FacetField 解析为一个包
在 jsp 文件中的第 19 行发生错误:/SearchBoxNew.jsp QueryResponse 无法解析为类型
提前感谢您的建议:)
【问题讨论】:
-
检查您的类,即 org.apache.solr.client.solrj.response.QueryResponse 和 org.apache.solr.client.solrj.response.FacetField 是否在类路径中。
-
请提供传入的类,如果您将该类用作外部类,请为其提供足够的 jar 文件。
-
所有 jar 文件都添加到类路径中。当我在简单的 java 程序中使用相同的逻辑时,它的执行没有任何错误。
-
那么请提供servlet-api.jar文件到tomcat的库中。
标签: java jsp types compiler-errors package