solr异常--Expected mime type application/octet-stream but got text/html.

Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:

Expected mime type application/octet-stream but got text/html.<html><head><title>Apache Tomcat/7.0.54 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - /solr/core0/update/extract</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>/solr/core0/update/extract</u></p><p><b>description</b> <u>The requested resource is not available.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.54</h3></body></html>

at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:516)

at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:210)

at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:206)

at solrj.CreateIndexFromPDF.indexFilesSolrCell(CreateIndexFromPDF.java:54)

at solrj.CreateIndexFromPDF.main(CreateIndexFromPDF.java:21)

部分代码:

String urlString = "http://localhost:8080/solr/core0";

SolrServer solr = new HttpSolrServer(urlString);

ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract");

是因为我用的: core0 (这个在当前的solr目录下是不存在的),已经被删除了。改为存在collection1 就正常通过。

所以有这样的错误一般是配置错误,或者操作的core核心不存在,或者没有配置对应的handler。都是路径错误,或者用法上的错误。

---------------------------------------

public class CreateIndexFromPDF {

public static void main(String[] args)

{

String fileName = "E:/apache-solr-ref-guide-4.4.pdf";

String solrId = "solr用户指南中文版.pdf";

try

{

indexFilesSolrCell(fileName, solrId);

}

catch (IOException e)

{

e.printStackTrace();

}

catch (SolrServerException e)

{

e.printStackTrace();

}

}

/** 从文件创建索引

* <功能详细描述>

* @param fileName

* @param solrId

* @see [类、类#方法、类#成员]

*/

public static void indexFilesSolrCell(String fileName, String solrId)

throws IOException, SolrServerException

{

String urlString = "http://localhost:8080/solr/core0";

SolrServer solr = new HttpSolrServer(urlString);

ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract");

String contentType="application/pdf";

up.addFile(new File(fileName), contentType);

up.setParam("literal.id", solrId);

up.setParam("uprefix", "attr_");

up.setParam("fmap.content", "attr_content");

up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

solr.request(up);

QueryResponse rsp = solr.query(new SolrQuery("*:*"));

System.out.println(rsp);

}

}