You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Shaun Campbell <ca...@gmail.com> on 2010/11/16 16:17:34 UTC

Core Swapping

I've got a Solr multi core system and I'm trying to swap the cores
after a re-index via SolrJ using a separate HTTP Solr web server.  My
application seems to be generating a URL that's not valid for my Solr
Tomcat installation but I can't see why or where it's getting its data
from.

Core swapping is working if I enter a URL manually into my browser.
This URL works:


http://localhost:8080/solr/admin/cores?action=SWAP&core=live&other=rebuild

As you can see in my error below the URL generated
(http://localhost:8080/solr/rebuild/admin/cores?action=SWAP&core=rebuild&other=live&wt=javabin&version=1)
has the core *rebuild* in it.  If I enter this directly into my
browser I get the following error:

HTTP Status 404 - /solr/admin/cores
type Status report
message /solr/admin/cores
description The requested resource (/solr/admin/cores) is not available.

My Java code is:
		CoreAdminRequest car = new CoreAdminRequest();
		car.setCoreName("rebuild");
		car.setOtherCoreName("live");
		car.setAction(CoreAdminParams.CoreAdminAction.SWAP);
		CoreAdminResponse carp = car.process(getSolrServer());


Can anyone suggest what I might be doing wrong?

Thanks
Shaun


The error from my web application is:

SEVERE: Servlet.service() for servlet Spring MVC Dispatcher Servlet
threw exception
org.apache.solr.common.SolrException: Not Found

Not Found

request: http://localhost:8080/solr/rebuild/admin/cores?action=SWAP&core=rebuild&other=live&wt=javabin&version=1
    at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:435)
    at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:244)
    at org.apache.solr.client.solrj.request.CoreAdminRequest.process(CoreAdminRequest.java:214)
    at uk.co.sjp.intranet.Factory.HttpSolrServerImpl.swapCores(HttpSolrServerImpl.java:50)
    at uk.co.sjp.intranet.indexing.DocumentIndexer.index(DocumentIndexer.java:185)
    at uk.co.sjp.intranet.SearchController.test(SearchController.java:107)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:195)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:159)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at uk.co.sjp.intranet.utils.JsonpCallbackFilter.doFilter(JsonpCallbackFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
16-Nov-2010 14:54:03 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
org.apache.solr.common.SolrException: Not Found

Re: Core Swapping

Posted by Markus Jelsma <ma...@openindex.io>.
CoreAdmin is handled by /solr/admin/cores/ and not by 
/solr/CORENAME/admin/cores/

On Tuesday 16 November 2010 16:17:34 Shaun Campbell wrote:
> I've got a Solr multi core system and I'm trying to swap the cores
> after a re-index via SolrJ using a separate HTTP Solr web server.  My
> application seems to be generating a URL that's not valid for my Solr
> Tomcat installation but I can't see why or where it's getting its data
> from.
> 
> Core swapping is working if I enter a URL manually into my browser.
> This URL works:
> 
> 
> http://localhost:8080/solr/admin/cores?action=SWAP&core=live&other=rebuild
> 
> As you can see in my error below the URL generated
> (http://localhost:8080/solr/rebuild/admin/cores?action=SWAP&core=rebuild&ot
> her=live&wt=javabin&version=1) has the core *rebuild* in it.  If I enter
> this directly into my
> browser I get the following error:
> 
> HTTP Status 404 - /solr/admin/cores
> type Status report
> message /solr/admin/cores
> description The requested resource (/solr/admin/cores) is not available.
> 
> My Java code is:
> 		CoreAdminRequest car = new CoreAdminRequest();
> 		car.setCoreName("rebuild");
> 		car.setOtherCoreName("live");
> 		car.setAction(CoreAdminParams.CoreAdminAction.SWAP);
> 		CoreAdminResponse carp = car.process(getSolrServer());
> 
> 
> Can anyone suggest what I might be doing wrong?
> 
> Thanks
> Shaun
> 
> 
> The error from my web application is:
> 
> SEVERE: Servlet.service() for servlet Spring MVC Dispatcher Servlet
> threw exception
> org.apache.solr.common.SolrException: Not Found
> 
> Not Found
> 
> request:
> http://localhost:8080/solr/rebuild/admin/cores?action=SWAP&core=rebuild&ot
> her=live&wt=javabin&version=1 at
> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHtt
> pSolrServer.java:435) at
> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHtt
> pSolrServer.java:244) at
> org.apache.solr.client.solrj.request.CoreAdminRequest.process(CoreAdminReq
> uest.java:214) at
> uk.co.sjp.intranet.Factory.HttpSolrServerImpl.swapCores(HttpSolrServerImpl
> .java:50) at
> uk.co.sjp.intranet.indexing.DocumentIndexer.index(DocumentIndexer.java:185
> ) at uk.co.sjp.intranet.SearchController.test(SearchController.java:107) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39) at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm
> pl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)
>     at
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInv
> okeMethod(HandlerMethodInvoker.java:710) at
> org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invok
> eHandlerMethod(HandlerMethodInvoker.java:167) at
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdap
> ter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414) at
> org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdap
> ter.handle(AnnotationMethodHandlerAdapter.java:402) at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherSer
> vlet.java:771) at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServ
> let.java:716) at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkS
> ervlet.java:647) at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.ja
> va:552) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati
> onFilterChain.java:290) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter
> Chain.java:206) at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatche
> r.java:630) at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationD
> ispatcher.java:436) at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispat
> cher.java:374) at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatch
> er.java:302) at
> org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewri
> ttenUrl.java:195) at
> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:1
> 59) at
> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) at
> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.j
> ava:90) at
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilt
> er.java:417) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati
> onFilterChain.java:235) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter
> Chain.java:206) at
> uk.co.sjp.intranet.utils.JsonpCallbackFilter.doFilter(JsonpCallbackFilter.
> java:108) at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati
> onFilterChain.java:235) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter
> Chain.java:206) at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.
> java:233) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.
> java:191) at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:1
> 28) at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:1
> 02) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.ja
> va:109) at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286
> ) at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Ht
> tp11Protocol.java:583) at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at
> java.lang.Thread.run(Thread.java:619)
> 16-Nov-2010 14:54:03 org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet default threw exception
> org.apache.solr.common.SolrException: Not Found

-- 
Markus Jelsma - CTO - Openindex
http://www.linkedin.com/in/markus17
050-8536600 / 06-50258350