只能导入一个类型。 org.apache.solr.client.solrj.response.QueryResponse 解析为一个包
Only a type can be imported. org.apache.solr.client.solrj.response.QueryResponse resolves to a package
下面的人是我的 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 Status 500 - Unable to compile class for JSP:
type Exception report
message Unable to compile class for JSP:
description The server encountered an internal error that prevented it
from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 6 in the generated java file Only a type
can be imported. org.apache.solr.client.solrj.response.QueryResponse
resolves to a package
An error occurred at line: 9 in the generated java file Only a type
can be imported. org.apache.solr.client.solrj.response.FacetField
resolves to a package
An error occurred at line: 19 in the jsp file: /SearchBoxNew.jsp
QueryResponse cannot be resolved to a type
提前感谢您的建议:)
从错误看来,您正在尝试导入不是 class 的内容。
如果您的 QueryResponse 是 class,您应该像这样导入它:
<%@page import="org.apache.solr.client.solrj.response.QueryResponse"%>
如果它是一个包,而您想导入包中的所有内容,您应该这样做:
<%@page import="org.apache.solr.client.solrj.response.* "%>
如果您使用的是 Maven - 检查您的 pom 文件中是否有 apropriate dependency。
下面的人是我的 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 Status 500 - Unable to compile class for JSP:
type Exception report
message Unable to compile class for JSP:
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 6 in the generated java file Only a type can be imported. org.apache.solr.client.solrj.response.QueryResponse resolves to a package
An error occurred at line: 9 in the generated java file Only a type can be imported. org.apache.solr.client.solrj.response.FacetField resolves to a package
An error occurred at line: 19 in the jsp file: /SearchBoxNew.jsp QueryResponse cannot be resolved to a type
提前感谢您的建议:)
从错误看来,您正在尝试导入不是 class 的内容。
如果您的 QueryResponse 是 class,您应该像这样导入它:
<%@page import="org.apache.solr.client.solrj.response.QueryResponse"%>
如果它是一个包,而您想导入包中的所有内容,您应该这样做:
<%@page import="org.apache.solr.client.solrj.response.* "%>
如果您使用的是 Maven - 检查您的 pom 文件中是否有 apropriate dependency。