严重:无法启动SOLR。检查solr / home属性java.lang.NoClassDefFoundError:org.apache.solr.core.JmxMonitoredMap

时间:2012-02-21 15:45:02

标签: noclassdeffounderror classnotfoundexception sunspot-rails rake-task sunspot-solr

运行时出现此错误

rake sunspot:solr:start

然后查看log / sunspot-solr-development.log

SEVERE: Could not start SOLR. Check solr/home property
java.lang.NoClassDefFoundError: org.apache.solr.core.JmxMonitoredMap
   at java.lang.Class.initializeClass(libgcj.so.11)
   at org.apache.solr.core.SolrCore.<init>(SolrCore.java:525)
   at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:137)
   at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:83)
   at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:99)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:594)
   at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
   at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
   at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
   at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
   at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
   at org.mortbay.jetty.Server.doStart(Server.java:210)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:929)
   at java.lang.reflect.Method.invoke(libgcj.so.11)
   at org.mortbay.start.Main.invokeMain(Main.java:183)
   at org.mortbay.start.Main.start(Main.java:497)
   at org.mortbay.start.Main.main(Main.java:115)
Caused by: java.lang.ClassNotFoundException: javax.management.remote.JMXConnectorServer not found in StartLoader[file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jetty-6.1.3.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/servlet-api-2.5-6.1.3.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jetty-util-6.1.3.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/jsp-2.1.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/core-3.1.1.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/jsp-api-2.1.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/ant-1.6.5.jar]
   at java.net.URLClassLoader.findClass(libgcj.so.11)
   at java.lang.ClassLoader.loadClass(libgcj.so.11)
   at java.lang.ClassLoader.loadClass(libgcj.so.11)
   at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375)
   at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
   at java.lang.Class.initializeClass(libgcj.so.11)
   ...24 more
Feb 21, 2012 10:33:00 a.m. org.apache.solr.common.SolrException log
SEVERE: java.lang.NoClassDefFoundError: org.apache.solr.core.JmxMonitoredMap
   at java.lang.Class.initializeClass(libgcj.so.11)
   at org.apache.solr.core.SolrCore.<init>(SolrCore.java:525)
   at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:137)
   at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:83)
   at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:99)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:594)
   at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
   at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
   at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
   at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
   at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
   at org.mortbay.jetty.Server.doStart(Server.java:210)
   at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
   at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:929)
   at java.lang.reflect.Method.invoke(libgcj.so.11)
   at org.mortbay.start.Main.invokeMain(Main.java:183)
   at org.mortbay.start.Main.start(Main.java:497)
   at org.mortbay.start.Main.main(Main.java:115)
Caused by: java.lang.ClassNotFoundException: javax.management.remote.JMXConnectorServer not found in StartLoader[file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jetty-6.1.3.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/servlet-api-2.5-6.1.3.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jetty-util-6.1.3.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/jsp-2.1.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/core-3.1.1.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/jsp-api-2.1.jar, file:/home/juan/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/lib/jsp-2.1/ant-1.6.5.jar]
   at java.net.URLClassLoader.findClass(libgcj.so.11)
   at java.lang.ClassLoader.loadClass(libgcj.so.11)
   at java.lang.ClassLoader.loadClass(libgcj.so.11)
   at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375)
   at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
   at java.lang.Class.initializeClass(libgcj.so.11)
   ...24 more

我用这种方式解决了它

cd ~/.rvm/gems/ruby-1.9.2-p290@tmp/gems/sunspot_solr-1.3.0/solr/
/usr/java/jdk1.7.0_01/jre/bin/java -jar start.jar

但是我想直接从rake任务运行它,我在〜/ .bashrc中有这个

export JDK_HOME=/usr/java/jdk1.7.0_01
export JAVA_HOME=/usr/java/jdk1.7.0_01/jre
export PATH=$PATH:$JAVA_HOME/bin

我的配置有什么问题?

1 个答案:

答案 0 :(得分:1)

这就是我所做的:

which java

告诉我,我使用的是旧的不同版本的Java,所以我做了

update-alternatives --config java

选择1.7 JVM。

由于某些原因,来自JAVA_HOME的{​​{1}}无效。