我们正在使用solr6.2版本,现在正在将其迁移到最新的solr8.2版本。所有我们的测试案例在创建集群时都失败了。我们正在使用MiniSolrCloudCluster创建集群,但是在内部使用了JettySolrRunner类,其中很少使用方法和类。因此,我们收到以下错误:
Java.lang.Exception:启动MiniSolrCloudCluster时出错 在org.apache.solr.cloud.MiniSolrCloudCluster.checkForExceptions(MiniSolrCloudCluster.java:652) 在org.apache.solr.cloud.MiniSolrCloudCluster(MiniSolrCloudCluster.java:306) 在org.apache.solr.cloud.MiniSolrCloudCluster。(MiniSolrCloudCluster.java:239) 在org.apache.solr.cloud.MiniSolrCloudCluster(MiniSolrCloudCluster.java:219) 在org.apache.solr.cloud.MiniSolrCloudCluster(MiniSolrCloudCluster.java:146) 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 禁止显示:java.lang.NoSuchMethodError:org.eclipse.jetty.util.thread.QueuedThreadPool.setReservedThreads(I)V 在org.apache.solr.client.solrj.embedded.JettySolrRunner.init(JettySolrRunner.java:265) 在org.apache.solr.client.solrj.embedded.JettySolrRunner。(JettySolrRunner.java:257) 在org.apache.solr.client.solrj.embedded.JettySolrRunner。(JettySolrRunner.java:229) 在org.apache.solr.client.solrj.embedded.JettySolrRunner(JettySolrRunner.java:216)中 在org.apache.solr.cloud.MiniSolrCloudCluster.startJettySolrRunner(MiniSolrCloudCluster.java:465) 在org.apache.solr.cloud.MiniSolrCloudCluster.lambda $ new $ 0(MiniSolrCloudCluster.java:300) 在java.util.concurrent.FutureTask.run(FutureTask.java:266) 在org.apache.solr.common.util.ExecutorUtil $ MDCAwareThreadPoolExecutor.lambda $ execute $ 0(ExecutorUtil.java:209)中 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) ...还有1个
public MiniSolrCloudCluster cluster() throws Exception {
JettyConfig jettyConfig = JettyConfig.builder().setContext("/").build();
return new MiniSolrCloudCluster(3, Paths.get("build/cluster"), jettyConfig);
}
请建议是否有任何方法可以使用solr-core-8.2.0创建solr集群
答案 0 :(得分:0)
您可以尝试像我一样创建solr集群。
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.embedded.JettyConfig;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.List;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;
import org.apache.solr.client.solrj.response.ConfigSetAdminResponse;
import org.apache.solr.cloud.MiniSolrCloudCluster;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
public class MiniSolrCloudClusterUtil {
private MiniSolrCloudCluster miniSolrCloudCluster;
public MiniSolrCloudClusterUtil(String fileLoc, int numServers) {
Path baseDir = (new File(fileLoc)).toPath();
JettyConfig jettyConfig = JettyConfig.builder().setPort(0).build();
try {
this.miniSolrCloudCluster = new MiniSolrCloudCluster(numServers, baseDir, jettyConfig);
} catch (Exception var6) {
throw new IllegalArgumentException("MiniSolrCloudCluster cannot be created. ", var6);
}
}
public MiniSolrCloudCluster getMiniSolrCloudCluster() {
return this.miniSolrCloudCluster;
}
public ConfigSetAdminResponse listConfigSets() {
try {
return (new List()).process(this.miniSolrCloudCluster.getSolrClient());
} catch (IOException | SolrServerException var2) {
throw new IllegalArgumentException("Unable to pull config set", var2);
}
}
public CollectionAdminResponse getSolrClusterStatus() {
try {
return CollectionAdminRequest.getClusterStatus().process(this.miniSolrCloudCluster.getSolrClient());
} catch (IOException | SolrServerException var2) {
throw new IllegalArgumentException("Unable to pull config set", var2);
}
}
}