Solr(太阳黑子)跑,但不会开始

时间:2016-01-23 02:35:27

标签: ruby-on-rails ruby solr lucene sunspot

当我运行RAILS_ENV=production rake sunspot:solr:run时,Solr按预期启动,日志看起来像这样:

0    INFO  (main) [   ] o.e.j.u.log Logging initialized @613ms
355  INFO  (main) [   ] o.e.j.s.Server jetty-9.2.11.v20150529
380  WARN  (main) [   ] o.e.j.s.h.RequestLogHandler !RequestLog
383  INFO  (main) [   ] o.e.j.d.p.ScanningAppProvider Deployment monitor    [file:/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-   2.2.3/solr/server/contexts/] at interval 0
1392 INFO  (main) [   ] o.e.j.w.StandardDescriptorProcessor NO JSP Support for /solr, did not find org.apache.jasper.servlet.JspServlet
1437 WARN  (main) [   ] o.e.j.s.SecurityHandler ServletContext@o.e.j.w.WebAppContext@1f3ff9d4{/solr,file:/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr-webapp/webapp/,STARTING}{/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr-webapp/webapp} has uncovered http methods for path: /
1456 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter SolrDispatchFilter.init(): WebAppClassLoader=879601585@346da7b1
1487 INFO  (main) [   ] o.a.s.c.SolrResourceLoader JNDI not configured for solr (NoInitialContextEx)
1488 INFO  (main) [   ] o.a.s.c.SolrResourceLoader using system property solr.solr.home: /usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr
1491 INFO  (main) [   ] o.a.s.c.SolrResourceLoader new SolrResourceLoader for directory: '/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr/'
1738 INFO  (main) [   ] o.a.s.c.SolrXmlConfig Loading container configuration from /usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr/solr.xml
1848 INFO  (main) [   ] o.a.s.c.CoresLocator Config-defined core root directory: /usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr
1882 INFO  (main) [   ] o.a.s.c.CoreContainer New CoreContainer 394200281
1882 INFO  (main) [   ] o.a.s.c.CoreContainer Loading cores into CoreContainer [instanceDir=/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr/]
1883 INFO  (main) [   ] o.a.s.c.CoreContainer loading shared library: /usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr/lib
1883 WARN  (main) [   ] o.a.s.c.SolrResourceLoader Can't find (or read) directory to add to classloader: lib (resolved as: /usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr/lib).
1905 INFO  (main) [   ] o.a.s.h.c.HttpShardHandlerFactory created with socketTimeout : 600000,connTimeout : 60000,maxConnectionsPerHost : 20,maxConnections : 10000,corePoolSize : 0,maximumPoolSize : 2147483647,maxThreadIdleTime : 5,sizeOfQueue : -1,fairnessPolicy : false,useRetries : false,
2333 INFO  (main) [   ] o.a.s.u.UpdateShardHandler Creating UpdateShardHandler HTTP client with params: socketTimeout=600000&connTimeout=60000&retry=true
2338 INFO  (main) [   ] o.a.s.l.LogWatcher SLF4J impl is org.slf4j.impl.Log4jLoggerFactory
2339 INFO  (main) [   ] o.a.s.l.LogWatcher Registering Log Listener [Log4j (org.slf4j.impl.Log4jLoggerFactory)]
2341 INFO  (main) [   ] o.a.s.c.CoreContainer Security conf doesn't exist. Skipping setup for authorization module.
2341 INFO  (main) [   ] o.a.s.c.CoreContainer No authentication plugin used.
2379 INFO  (main) [   ] o.a.s.c.CoresLocator Looking for core definitions underneath /usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr
2385 INFO  (main) [   ] o.a.s.c.CoresLocator Found 0 core definitions
2389 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter user.dir=/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server
2390 INFO  (main) [   ] o.a.s.s.SolrDispatchFilter SolrDispatchFilter.init() done
2435 INFO  (main) [   ] o.e.j.s.h.ContextHandler Started o.e.j.w.WebAppContext@1f3ff9d4{/solr,file:/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr-webapp/webapp/,AVAILABLE}{/usr/local/rvm/gems/ruby-2.2.1/gems/sunspot_solr-2.2.3/solr/server/solr-webapp/webapp}
2458 INFO  (main) [   ] o.e.j.s.ServerConnector Started ServerConnector@649ad901{HTTP/1.1}{0.0.0.0:8080}
2458 INFO  (main) [   ] o.e.j.s.Server Started @3074ms
6677 INFO  (qtp207710485-20) [   ] o.a.s.s.SolrDispatchFilter [admin] webapp=null path=/admin/cores params={indexInfo=false&_=1453515549920&wt=json} status=0 QTime=58 
6796 INFO  (qtp207710485-19) [   ] o.a.s.s.SolrDispatchFilter [admin] webapp=null path=/admin/info/system params={_=1453515550069&wt=json} status=0 QTime=23 

我也可以访问localhost:8080 / solr。

但是,当我运行RAILS_ENV=production rake sunspot:solr:start --trace时,我得到一个正常的跟踪:

** Invoke sunspot:solr:start (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute sunspot:solr:start
Removing stale PID file at /home/rails/webapp/solr/pids/production/sunspot-solr-production.pid
Successfully started Solr ...

然而我无法访问localhost:8080(它给了我ERR_CONNECTION_REFUSED),当我尝试做任何涉及Solr的事情时,我收到Errno::ECONNREFUSED: Connection refused错误。

例如,当我在启动Solr后运行RAILS_ENV=production rake sunspot:solr:reindex时,我得到:

Errno::ECONNREFUSED: Connection refused - {:data=>"<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete><query>type:Piece</query></delete>", :headers=>{"Content-Type"=>"text/xml"}, :method=>:post, :params=>{:wt=>:ruby}, :query=>"wt=ruby", :path=>"update", :uri=>#<URI::HTTP http://localhost:8080/solr/update?wt=ruby>, :open_timeout=>nil, :read_timeout=>nil, :retry_503=>nil, :retry_after_limit=>nil}

...

Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 8080

this之后,我的sunspot.yml文件如下所示:

production:
  solr:
    hostname: localhost
    port: 8080 #tomcat defaults to port 8080
    path: /solr
    log_level: WARNING
    solr_home: solr

Solr服务器之前工作正常。当我尝试播种生产数据库并收到EOFError: end of file reached时,连接错误就开始了。如果需要,我可以发布该错误的完整跟踪。

请帮忙!

1 个答案:

答案 0 :(得分:1)

我遇到了类似的情况。太阳黑子会说Solr已经成功开始,但它实际上从未真正开始。事实证明我正在使用Java 1.6并安装JDK 8为我修复它。