Thanks Mark...I will use it with 4.1. For now, I used httpclient to call the Collections api directly (do a Get on http://127.0.0.1:8983/solr/admin/collections?action=CREATE etc). This is working.
-----Original Message----- From: Mark Miller [mailto:markrmil...@gmail.com] Sent: Tuesday, January 08, 2013 7:46 AM To: solr-user@lucene.apache.org Subject: Re: Solr 4 exceptions on trying to create a collection If you are using 4.0 you can't use the CloudSolrServer with the collections API - you have to pick a server and use the HttpSolrServer impl. In 4.1 you can use the CloudSolrServer with the collections API. - Mark On Jan 6, 2013, at 8:42 PM, Jay Parashar <jparas...@itscape.com> wrote: > 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://1 > 27.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(CoreConn > ectionPNames.CONNECTION_TIMEOUT, 5000); > server.getLbServer().getHttpClient().getParams().setParameter(CoreConn > ectionPNames.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 >>> >>> >> >> >