QA@IT

Solrのsolr/admin/にアクセスができない。

4121 PV

現在、Rails3.2とrvmと、sunspot2.0.0というGemを使って、solrのシステムを実装しているのですが、http://localhost:8982/solr/admin/
にアクセスできなくて困っています。

エラー内容

http://localhost:8982/solr/admin/
にアクセスすると

HTTP ERROR 404
Problem accessing /solr/admin/index.jsp. Reason:

    missing core name in path
Powered by Jetty://

というエラーが帰ってきます。

jettyのログ

後述

エラーが出るまでの行った事

まずsunspotを使って、rails g sunspot_rails:installでsolrをインストールして、2、3ヶ月動かしていました。
しかしメンテナンスをするために、solrを落として再起動した所、このようなエラーがでました。

エラー原因の自分の推察

rails g sunspot_rails:installを初めて行ったのは別のプロジェクト(今はもうない)で、そのときにsolrがインストールされたため、何らかのパスが昔の場所をみていて、エラーになるのではないか?

なにかお気づきの点があれば、ご指摘いただけると幸いです。

jettyのエラー時のログ

2013-03-28 14:42:00.441:WARN::/solr/admin/
java.lang.IllegalStateException: STREAM
    at org.mortbay.jetty.Response.getWriter(Response.java:616)
    at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:158)
    at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:151)
    at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:208)
    at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:144)
    at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:95)
    at org.apache.jsp.admin.index_jsp._jspService(org.apache.jsp.admin.index_jsp:416)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:80)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:464)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:358)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
    at org.mortbay.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:503)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:297)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
    at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)

回答

自己解決しました。お騒がしました。

解決方法は
https://github.com/sunspot/sunspot/issues/190
を参照してください。

大まかな解決方法の流れは
プロジェクトフォルダ以下のsolrフォルダをすべて消して、Gemからコピーするという事です。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。