: 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
have you considered the possibility that when you start with JMX enabled
it just happens to take longer then 5 seconds for the port to start up?
FWIW: using Runtime.exec in java to launch another java program seems
extremely crackpot. if you want Solr to run in a servlet container, and
you really want your own code to exist in the same app, have you
considered...
1) making your app a webapp that also runs in that container
2) coompiling a servlet container (like Jetty) into your app and loading
the solr webap programaticly?
#1 is probably the sanest, #2 can be accomplished fairly easily (it's what
some of the Jetty based solr tests do)
: 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();
: }
: }
: }
:
-Hoss