2013-03-05 16 views
11

Ich habe ein wenig Probleme zu verstehen, wie Solr passt mit Jetty, und warum ich nicht scheinen kann, um die start.jar in das Verteilungspaket zu arbeiten.Running Solr mit Jetty

Ich kann alle Beispielkonfigurationen über java -jar start.jar ausführen. Allerdings, wenn ich versuche, so etwas wie das follwing laufen -

java -Dsolr.solr.home=/Users/jwwest/solr -jar $(brew --prefix solr)/libexec/example/start.jar 

- der folgenden Fehler tritt auf:

java.io.FileNotFoundException: No XML configuration files specified in start.config or command line. 
    at org.eclipse.jetty.start.Main.start(Main.java:506) 
    at org.eclipse.jetty.start.Main.main(Main.java:95) 

öffnete ich die start.jar Datei auf, und es gibt eine start.config Datei innerhalb des Glases, die ich vermute, sollte diese Konfiguration für mich behandeln. Ich verstehe nicht, warum es funktioniert, wenn es innerhalb des Verzeichnisses der Distributionsbeispiele ausgeführt wird, aber nicht außerhalb davon.

+1

Sie müssen Jetty kaum konfigurieren, wenn SOLR ausgeführt wird, alle Konfigurationsarbeiten werden hauptsächlich in Ihrem solr-Setup ausgeführt. (solrconfig.xml).Wenn du zufällig mit ubuntu/debian arbeitest, ist es normalerweise eine Sache von _apt-get install solr-jetty_ Dann musst du dein Schema für solr definieren und einen Core erstellen. Sie würden die Startup-Skripte von Jetty Init verwenden, um es zu starten. Ich berühre nie start.jar –

Antwort

0

Anlegesteg wird oft als eingebetteter Container verwendet. Wenn Sie den Anlegesteg verwenden möchten, wäre es ein guter Anfang, das Beispielverzeichnis zu kopieren und es so umzubenennen, wie es sein soll. Das Verzeichnis solr ist das für die Grundkonfiguration.

Andernfalls wird empfohlen, Tomcat und die Datei solr.war zu verwenden.

2

Die start.jar ist ein anlegerspezifischer Mechanismus, der alle Klassenpfadanforderungen zum Starten von Jetty ausbaut. Es wird in der Regel nur im Rahmen der Stegverteilung verwendet. Wenn Sie die start.jar-Datei aus der Konfiguration ziehen und an anderer Stelle platzieren, wird die Standardkonfiguration der start.config-Datei eher ungültig.

Mein Verständnis von Solr ist, dass es sich mit einer Verteilung von Anlegesteg bündelt, Platziert, was es braucht, um in die Verteilung zu laufen und es als sein eigenes neu zu verpacken. Sie verfügen möglicherweise über eine benutzerdefinierte start.config-Datei, die weitere eigene Speicherorte für Klassenpfadressourcen und ähnliches hinzufügt oder nicht.

Die Ausnahme, die Sie sehen, stammt von der Datei start.config, die ein etc/-Verzeichnis erwartet, das die XML-Dateien jetty.xml enthält, die zum Konfigurieren des Anlegestegprozesses verwendet werden.

Anlegesteg, der oft in einem eingebetteten Format verwendet wird, hat wenig mit diesem Problem zu tun, es ist einfach ein häufiger Anwendungsfall, da Anlegestelle unglaublich einfach in eine Anwendung eingebettet werden kann. Eingebettete Instanzen von Anlegestellen nutzen selten (wenn überhaupt) eine start.jar ... stattdessen liegt es an der Einbettungsanwendung, ihren eigenen Klassenpfad zu verwalten.

4

Sie müssen auch die Eigenschaft jetty.home definieren. Versuchen:

java -Dsolr.solr.home=/Users/jwwest/solr -jar $(brew --prefix solr)/libexec/example/start.jar -Djetty.home=$(brew --prefix solr)/libexec/example 
+0

Du hast meinen Speck gerettet! Danke Ryan! – chrislondon

1

Zuerst müssen Sie Ihre Ordner, in dem start.jar befindet, dann den gleichen Befehl auszuführen.