【问题标题】:Only a type can be imported. org.apache.solr.client.solrj.response.QueryResponse resolves to a package只能导入一个类型。 org.apache.solr.client.solrj.response.QueryResponse 解析为一个包
【发布时间】: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


【解决方案1】:

从错误看来,您正在尝试导入不是类的东西。

如果你的 QueryResponse 是一个类,你应该像这样导入它:

<%@page import="org.apache.solr.client.solrj.response.QueryResponse"%>

如果它是一个包,并且你想导入包中的所有内容,你应该这样做:

<%@page import="org.apache.solr.client.solrj.response.* "%>

如果您使用的是 maven - 请检查您的 pom 文件中是否有 apropriate dependency

【讨论】:

  • 我纠正了这个..但仍然没有进展..而且我没有使用 maven
猜你喜欢
  • 2015-10-02
  • 2017-12-20
  • 2013-04-04
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
相关资源
最近更新 更多