0
votes

We're moving over to a new server and have decided to upgrade our version of Solr from 4.7.* to 4.10.3. So, here is what I've done so far:

After installation (openjdk7, jetty), I've copied folder /var/local/solr/solr to /var/local/solr/instance. I've then copied the collection1 folder and named it myproject. I've then added a new core, "myproject", to solr.xml. Anyway up until this point, after restarting Jetty, I can load the solr admin at http://example.com:8983/solr/#/myproject/

Next I want to setup a data import handler. If I go to "Dataimport" (/dataimport) from admin it tells me "sorry, no dataimport-handler defined!" so I next try to define a dataimport handler:

in solrconfig.xml, I've added:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">data-config.xml</str>
    </lst>
</requestHandler>

Then create the following data-import.xml file in the /conf directory:

<dataConfig>
    <dataSource type="JdbcDataSource" 
        driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost/mydb" 
        user="myuser" 
        password="mypw"/>
    <document>
        <entity
            name="questions"
            pk="id"
            query="select id,title,content from questions"
            deltaImportQuery="select id,title,content from questions where id='${dih.delta.id}'"
            deltaQuery="select id from questions where updated_at &gt; '${dih.last_index_time}'"
            >
        </entity>
    </document>
</dataConfig>

I've tried to following the guide closely but it seems everytime I add the above and then restart Jetty, I get the following error. I'm quite new to this so can't really make much sense of what it's telling me. What am I doing wrong? This is the same config we have in the earlier versions of solr, the error only seems to occur when I try to add the dataimport handler.

HTTP ERROR 500

Problem accessing /solr/. Reason:

    {msg=SolrCore 'myproject' is not available due to init failure: RequestHandler init failure,trace=org.apache.solr.common.SolrException: SolrCore 'myproject' is not available due to init failure: RequestHandler init failure
    at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:745)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:307)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:368)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
    at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
    at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.solr.common.SolrException: RequestHandler init failure
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:881)
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:654)
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:491)
    at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:255)
    at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:249)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    ... 1 more
Caused by: org.apache.solr.common.SolrException: RequestHandler init failure
    at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:172)
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:800)
    ... 8 more
Caused by: org.apache.solr.common.SolrException: Error loading class 'org.apache.solr.handler.dataimport.DataImportHandler'
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:490)
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:421)
    at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:551)
    at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:624)
    at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:158)
    ... 9 more
Caused by: java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:474)
    ... 13 more
,code=500}
1

1 Answers

0
votes

The system was not able to init your request handler, because an class was not found. Probably this is the missing class: org.apache.solr.handler.dataimport.DataImportHandler

So please check, if the class is available and/or check your lib-path.

<lib dir="../path/to/libs" />