The exception "No live SolrServers" is being thrown when trying to create a new Collection ( code at end of this mail). On the CloudSolrServer request method, we have this line "ClientUtils.appendMap(coll, slices, clusterState.getSlices(coll));" where "coll" is the new collection I am trying to create and hence clusterState.getSlices(coll)); is returning null. And then the loop of the slices which adds to the urlList never happens and hence the LBHttpSolrServer created in the CloudSolrServer has a null url list in the constructor. This is giving the "No live SolrServers" exception.
What I am missing? Instead of passing the CloudSolrServer to the create.process, if I pass the LBHttpSolrServer (server.getLbServer()), the collection gets created but only on one server. My code to create a new Cloud Server and new Collection:- String[] urls = {"http://127.0.0.1:8983/solr/","http://127.0.0.1:8900/solr/","http://127.0.0.1:7500/solr/","http://127.0.0.1:7574/solr/"}; CloudSolrServer server = new CloudSolrServer("127.0.0.1:2181", new LBHttpSolrServer(urls)); server.getLbServer().getHttpClient().getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000); server.getLbServer().getHttpClient().getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000); server.setDefaultCollection(collectionName); server.connect(); CoreAdminRequest.Create create = new CoreAdminRequest.Create(); create.setCoreName("myColl"); create.setCollection("myColl"); create.setInstanceDir("defaultDir"); create.setDataDir("myCollData"); create.setNumShards(2); create.process(server); //Exception No live SolrServers is thrown here Thanks Jay -----Original Message----- From: Alexandre Rafalovitch [mailto:arafa...@gmail.com] Sent: Friday, January 04, 2013 6:08 PM To: solr-user@lucene.apache.org Subject: Re: Solr 4 exceptions on trying to create a collection Tried Wireshark yet to see what host/port it is trying to connect and why it fails? It is a complex tool, but well worth learning. Regards, Alex. Personal blog: http://blog.outerthoughts.com/ LinkedIn: http://www.linkedin.com/in/alexandrerafalovitch - Time is the quality of nature that keeps events from happening all at once. Lately, it doesn't seem to be working. (Anonymous - via GTD book) On Fri, Jan 4, 2013 at 6:58 PM, Jay Parashar <jparas...@itscape.com> wrote: > Thanks! I had a different version of httpclient in the classpath. So > the 2nd exception is gone but now I am back to the first one " > org.apache.solr.client.solrj.SolrServerException: No live SolrServers > available to handle this request" > > -----Original Message----- > From: Alexandre Rafalovitch [mailto:arafa...@gmail.com] > Sent: Friday, January 04, 2013 4:21 PM > To: solr-user@lucene.apache.org > Subject: Re: Solr 4 exceptions on trying to create a collection > > For the second one: > > Wrong version of library on a classpath or multiple versions of > library on the classpath which causes wrong classes with missing > fields/variables? Or library interface baked in and the implementation > is newer. Some sort of mismatch basically. Most probably in Apache http > library. > > Regards, > Alex. > > Personal blog: http://blog.outerthoughts.com/ > LinkedIn: http://www.linkedin.com/in/alexandrerafalovitch > - Time is the quality of nature that keeps events from happening all > at once. Lately, it doesn't seem to be working. (Anonymous - via GTD > book) > > > On Fri, Jan 4, 2013 at 4:34 PM, Jay Parashar <jparas...@itscape.com> > wrote: > > > > > Hi All, > > > > I am getting exceptions on trying to create a collection. Any help > > is appreciated. > > > > While trying to create a collection, I got this error Caused by: > > org.apache.solr.client.solrj.SolrServerException: No live > > SolrServers available to handle this request > > at > > > > > org.apache.solr.client.solrj.impl.LBHttpSolrServer.request(LBHttpSolrServer. > > java:322) > > at > > > > org.apache.solr.client.solrj.impl.CloudSolrServer.request(CloudSolrS > > er > > ver.ja > > va:257) > > at > > > > org.apache.solr.client.solrj.request.CoreAdminRequest.process(CoreAd > > mi > > nReque > > st.java:423) > > > > > > On trying to increase the server timeout by > > > > server.getLbServer().getHttpClient().getParams().setParameter(CoreCo > > nn > > ection > > PNames.CONNECTION_TIMEOUT, 5000); > > > > server.getLbServer().getHttpClient().getParams().setParameter(CoreCo > > nn > > ection > > PNames.SO_TIMEOUT, 20000); > > > > I get this... > > > > SEVERE: The exception contained within MappableContainerException > > could not be mapped to a response, re-throwing to the HTTP container > > java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET > > at > > > > org.apache.http.impl.client.DefaultHttpClient.setDefaultHttpParams(D > > ef > > aultHt > > tpClient.java:175) > > at > > > > org.apache.http.impl.client.DefaultHttpClient.createHttpParams(Defau > > lt > > HttpCl > > ient.java:158) > > at > > > > > org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient. > > java:448) > > > > Thanks > > Jay > > > > > >