Reputation: 476
I am trying to add a DataImportHandler to my Solr 4.10.2 installation on CentOS 6 in a Tomcat 6 container. The purpose is to index data from a MySQL database to make it searchable.
Therefore I created a Solr-home directory at /var/www/solr
. Inside this folder I have the structure
solr.xml
zoo.cfg
conf/
data-config.xml
schema.xml
solrconfig.xml
dist/
...
solr-dataimporthandler-4.10.2.jar
solr-dataimporthandler-extras-4.10.2.jar
...
lib/
mysql-connector-java-5.1.34-bin.jar
If I start Tomcat I can access the Solr frontpage via http://127.0.0.1:8088/solr/. But if I go to http://127.0.0.1:8088/solr/dataimport I get an error message
"HTTP Status 404 - /solr/dataimport"
type: Status report
message: /solr/dataimport
description: The requested resource (/solr/dataimport) is not available.
Why is it not possible for me to get the dataimport handler working? I couldn't find an answer in other threads.
My Configuration XML file contains the following:
solrconfig.xml
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/var/www/solr/conf/data-config.xml</str>
</lst>
</requestHandler>
<lib dir="/var/www/solr/dist/" regex="solr-dataimporthandler-\d.*\.jar" />
EDIT:
The Tomcat Logs (var/log/tomcat6/catalina.out) for the startup of the Tomcat servlet are shown below
INFO: Server startup in 3722 ms
Jan 23, 2015 9:46:08 AM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Jan 23, 2015 9:46:09 AM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Jan 23, 2015 9:46:09 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: A web application appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
Jan 23, 2015 9:46:09 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: A web application created a ThreadLocal with key of type [org.apache.solr.schema.DateField.ThreadLocalDateFormat] (value [org.apache.solr.schema.DateField$ThreadLocalDateFormat@29215f06]) and a value of type [org.apache.solr.schema.DateField.ISO8601CanonicalDateFormat] (value [org.apache.solr.schema.DateField$ISO8601CanonicalDateFormat@6b2ed43a]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
Jan 23, 2015 9:46:09 AM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
Jan 23, 2015 9:46:11 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Jan 23, 2015 9:46:11 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Jan 23, 2015 9:46:11 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 986 ms
Jan 23, 2015 9:46:11 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Jan 23, 2015 9:46:11 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.24
Jan 23, 2015 9:46:11 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Jan 23, 2015 9:46:12 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
Jan 23, 2015 9:46:12 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive solr.war
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/share/java/tomcat6/slf4j-log4j12-1.7.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/share/java/tomcat6/slf4j-jcl-1.7.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/share/java/tomcat6/slf4j-jdk14-1.7.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/share/java/tomcat6/slf4j-nop-1.7.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/share/java/tomcat6/slf4j-simple-1.7.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
0 [main] INFO org.apache.solr.servlet.SolrDispatchFilter – SolrDispatchFilter.init()
44 [main] INFO org.apache.solr.core.SolrResourceLoader – Using JNDI solr.home: /var/www/solr
50 [main] INFO org.apache.solr.core.SolrResourceLoader – new SolrResourceLoader for directory: '/var/www/solr/'
66 [main] INFO org.apache.solr.core.SolrResourceLoader – Adding 'file:/var/www/solr/lib/mysql-connector-java-5.1.34/' to classloader
68 [main] INFO org.apache.solr.core.SolrResourceLoader – Adding 'file:/var/www/solr/lib/mysql-connector-java-5.1.34-bin.jar' to classloader
619 [main] INFO org.apache.solr.core.ConfigSolr – Loading container configuration from /var/www/solr/solr.xml
876 [main] INFO org.apache.solr.core.CoresLocator – Config-defined core root directory: /var/www/solr
896 [main] INFO org.apache.solr.core.CoreContainer – New CoreContainer 580871917
897 [main] INFO org.apache.solr.core.CoreContainer – Loading cores into CoreContainer [instanceDir=/var/www/solr/]
922 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting socketTimeout to: 0
923 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting urlScheme to: null
935 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting connTimeout to: 0
936 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting maxConnectionsPerHost to: 20
937 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting corePoolSize to: 0
939 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting maximumPoolSize to: 2147483647
939 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting maxThreadIdleTime to: 5
941 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting sizeOfQueue to: -1
942 [main] INFO org.apache.solr.handler.component.HttpShardHandlerFactory – Setting fairnessPolicy to: false
1361 [main] INFO org.apache.solr.update.UpdateShardHandler – Creating UpdateShardHandler HTTP client with params: socketTimeout=0&connTimeout=0&retry=false
1368 [main] INFO org.apache.solr.logging.LogWatcher – SLF4J impl is org.slf4j.impl.Log4jLoggerFactory
1381 [main] INFO org.apache.solr.logging.LogWatcher – Registering Log Listener [Log4j (org.slf4j.impl.Log4jLoggerFactory)]
1385 [main] INFO org.apache.solr.core.CoreContainer – Host Name:
1511 [main] INFO org.apache.solr.core.CoresLocator – Looking for core definitions underneath /var/www/solr
1544 [main] INFO org.apache.solr.core.CoresLocator – Found 0 core definitions
1550 [main] INFO org.apache.solr.servlet.SolrDispatchFilter – user.dir=/usr/share/tomcat6
1552 [main] INFO org.apache.solr.servlet.SolrDispatchFilter – SolrDispatchFilter.init() done
Jan 23, 2015 9:46:15 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory sample
Jan 23, 2015 9:46:15 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Jan 23, 2015 9:46:16 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jan 23, 2015 9:46:16 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jan 23, 2015 9:46:16 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jan 23, 2015 9:46:16 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/61 config=null
Jan 23, 2015 9:46:16 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 4791 ms
Upvotes: 0
Views: 1673
Reputation: 500
I don't think your regex is matching both DIH related jars. Try changing the config to:
<lib dir="/var/www/solr/dist/" regex="solr-dataimporthandler-.*\.jar" />
Or, as an alternative, you can try to specify the full paths to each lib:
<lib path="/var/www/solr/dist/solr-dataimporthandler-4.10.2.jar" />
<lib path="/var/www/solr/dist/solr-dataimporthandler-extras-4.10.2.jar" />
UPDATE
After some troubleshooting it seems that the problem was that Solr could not autodetect the cores, so the solrconfig.xml was not loaded at all.
So the solution was to add the core.properties
file to the core folder.
Upvotes: 1