NoClassDefFoundError (Number 1)¶
Difference between ClassNotFoundException and NoClassDefFoundError (Note: One of the comments helped me solve this issue).
Had this issue when trying to get LocalSolr working. I was using a Tomcat
context file in
conf/Catalina/localhost/solr.xml to point to the
It seems that even when using a context file, Tomcat will copy and explode the
contents of the
war file to
webapps. The error was caused because the
jar file was in the
war file in
/repository/solr/war/ but not in
webapps/solr (Tomcat had not synchronised the changes).
To solve the problem, I stopped Tomcat, deleted
webapps/solr and re-started
NoClassDefFoundError (Number 2)¶
java.lang.NoClassDefFoundError at org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:69)
is usually caused because you have not copied the solr configuration files into the Tomcat folder (step 4 above).
failed to create an XPathFactory¶
java.lang.ExceptionInInitializerError at org.apache.solr.servlet.SolrServlet.init(SolrServlet.java:64) ... Caused by: java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom at javax.xml.xpath.XPathFactory.newInstance(Unknown Source) at org.apache.solr.core.Config.<clinit>(Config.java:49) ... 28 more
Finally found out that the problem was due to the Tomcat Java 1.4 compatibility libraries. I had recently upgraded to Java 1.5, but forgot to remove them:
ls -l /usr/share/tomcat-5.5/common/endorsed/ total 0 lrwxrwxrwx 1 root root 38 Dec 26 12:15 xercesImpl.jar -> /usr/share/xerces-2/lib/xercesImpl.jar lrwxrwxrwx 1 root root 52 Dec 26 12:15 xml-apis.jar -> /usr/share/xml-commons-external-1.3/lib/xml-apis.jar
rm /usr/share/tomcat-5.5/common/endorsed/xercesImpl.jar rm /usr/share/tomcat-5.5/common/endorsed/xml-apis.jar
Index not created¶
When SOLR is started it tries to create an index in
WARNING: Solr index directory '/home/integration/solr/data/index' doesn't exist. Creating new index...
But the index is not created. When we try to run a search from the SOLR admin interface we get this exception:
Dec 26, 2006 5:22:58 PM org.apache.solr.core.SolrException log SEVERE: java.lang.RuntimeException: java.io.IOException: /home/integration/solr/data/index not a directory at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:363) ... Caused by: java.io.IOException: /home/integration/solr/data/index not a directory at org.apache.lucene.store.FSDirectory.init(FSDirectory.java:225)
To solve the problem change the owner and group on the
solr folder so that
tomcat has permission to create folders:
chown -R tomcat:tomcat /home/integration/solr/
Note: This can also be a problem in Windows. To solve the problem, check which user Tomcat is running as… and make sure that user has create permissions on the data folder.
SEVERE: Error filterStart¶
06-Apr-2008 19:37:41 org.apache.catalina.core.StandardContext start SEVERE: Error filterStart 06-Apr-2008 19:37:41 org.apache.catalina.core.StandardContext start SEVERE: Context [/solr] startup failed due to previous errors
/var/lib/tomcat5.5/logs/localhost.2008-04-06.log for further details.
To solve the problem:
I had to copy all the example configuration files, from the extracted archive to the repository folder (see above)…
Tomcat Security Manager
You might also need to disable the Tomcat security manager:
/etc/default/tomcat5.5and make sure
TOMCAT5_SECURITYis set to