> Solr looks in the current working directory for the solrconf
> directory, so it depends where that ends up when tomcat is started.
Meanwhile I found out that tomcat is located in /usr/share/tomcat5 and
that there is a bin-directory in it, which I was searching for. A
handfull of links are pointing to /var/lib/tomcat5 which I found
first. So this time I started tomcat using the ./bin/startup.sh as
recommended (had to set some environment variables first) but still
got an error messages. However, this time a different one:

javax.servlet.ServletException
        
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
        
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
        org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:262)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NoClassDefFoundError
        org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:67)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


At this point I gave up and tried a new approach. I changed configDir
in Config.java to "/var/lib/tomcat5/solrconf/" (this is where I placed
the configuration) and compiled the whole thing. I'm not sure, if this
really could work (could it?) and in fact it didn't. But I think that
the problem is not the location of the configuration files, but
something different. What do these Security and Privilege messages
mean showing up in the error message?

java.lang.ExceptionInInitializerError
        org.apache.solr.update.SolrIndexConfig.<clinit>(SolrIndexConfig.java:34)
        org.apache.solr.core.SolrCore.<clinit>(SolrCore.java:71)
        org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:67)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:585)
        org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
        java.security.AccessController.doPrivileged(Native Method)
        javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:272)
        
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)


> It might be easier to download a recent Tomcat 5.5 distribution and
> get it working with that first... then try with the bundled version of
> Tomcat once you understand how everything works.
Thanks Yonik, maybe I should try that, though I now think that the
configuration is not the main problem.

Btw, I don't like the way the config-files are handled. Searching them in
the webapps-dir is not very elegant, I think. Instead they should be
in /etc/solr or something (for linux; sorry, don't know if there's a
common place where configs are placed under windows or other OSs).

This will become a problem for me anyway because I'm planing to have
three independent indexes which should be operated by three servlets. If
my approach changing the variable configDir worked, this would really
be fine. This way I could create three war-files containing different
locations for the config (and yes, this wouldn't work with my proposed
"elegant" way of putting everything to /etc/solr). Is this approach
correct or do I have to make changes to the code elsewhere?

Thanks,
Marcus


Reply via email to