There is something really interesting going on when I try to start
Solr and then connect to it in the same process. I get a "connection
refused" error. The code I try to use is found below. If I start solr
with runtime.exec("java -jar start.jar") it works fine to connect to
it afterwards, but if I start solr with runtime.exec("java
-Dcom.sun.management.jmxremote -jar start.jar") I can't connect to
solr. It is possible to connect with the web browser however, or any
other program, even with the same code that fails when it's in the
same process.
I just can't figure out why I can't connect to solr. Anyone have any hints?
/Tim
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.SolrQuery;
import java.net.URL;
import java.net.URLConnection;
import java.io.File;
class StartSolr {
public static void main(String[] args) {
try {
String cmd = "java -Dcom.sun.management.jmxremote -jar start.jar";
String cmd2 = "java -jar start.jar"; // works
File workingDir = new File("/some/path/apache-1.4.0/example");
Runtime.getRuntime().exec(cmd2, null, workingDir);
Thread.sleep(5*1000);
URL url = new URL("http://localhost:8983/solr");
URLConnection connection = url.openConnection();
Object content = connection.getContent();
System.out.println(content);
System.out.println("Success");
}
catch (Exception e) {
e.printStackTrace();
}
}
}