1

solrJを使用してsolrサーバーにアクセスしようとしています

  1. サブドメイン search.xxx.com に solr を展開し、solrj クライアントを使用していくつかのデータのインデックスを作成しようとしました。しかし、tomcat 7 の catalina.out で「Length Required」を受け取りました。
  2. 私がそれを開発したとき、それは私のローカルセットアップでうまくいきました。
  3. 0 件のドキュメントが返された場合でも、クエリは成功します。
  4. これをダンプしてデータ インポート ハンドラ (xml) を使用しても、ドキュメントを動的に更新するにはどうすればよいですか。

以下は、私が取得している catalina.out エラーです。

org.apache.solr.common.SolrException: Length Required

Length Required

request: http://search.xxx.com/solr/product_mobile/update/javabin?wt=javabin&version=2
    at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:432)
    at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:246)
    at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:69)
    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:54)
    at com.xxx.product.solrclient.SolrConnection.indexListOfDocuments(SolrConnection.java:183)
    at com.xxx.product.solrclient.SolrOperations.reloadDataIntoSolrIndex(SolrOperations.java:169)
    at com.xxx.product.servlets.AjaxCallHandlerServlet.reloadSolrIndex(AjaxCallHandlerServlet.java:235)
    at com.xxx.product.servlets.AjaxCallHandlerServlet.doPost(AjaxCallHandlerServlet.java:140)
    at com.xxx.product.servlets.AjaxCallHandlerServlet.doGet(AjaxCallHandlerServlet.java:64)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at com.inspion.product.servlets.ProductFrontControllerServlet.doGet(ProductFrontControllerServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.inspion.product.filters.ProductRequestValidatorFilter.doFilter(ProductRequestValidatorFilter.java:49)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:261)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    at org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1731)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
4

1 に答える 1

0

それは完全な答えではありません(そして、スタックオーバーフローではまだ「コメント」できません)。

あなたの solrj リクエストは solrservlet によって応答されていないようですが、エラーページか何かです。search.xxx.com の前に Web サーバーはありますか?

サーバー側の例外を取得するには、Tomcat サーバーのシステム アウト/エラー ログから開始することをお勧めします。それは役に立ちます。

于 2012-06-13T13:30:31.820 に答える