2013-03-05 130 views
11

我对理解Solr如何适应Jetty有点麻烦,为什么我似乎无法使分发包中的start.jar工作。用Jetty运行Solr

我可以通过java -jar start.jar运行所有的示例配置。然而,当我尝试运行类似的follwing -

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

- 在出现下列错误:

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) 

我打开了start.jar文件,并有一个start.config文件位于罐子里,我假设应该为我处理这个配置。我不理解为什么它将从分布式示例目录内运行,但不在其外部。

+1

在运行SOLR时,几乎不需要配置Jetty,所有配置工作主要在solr设置中完成。 (solrconfig.xml中)。我碰巧与ubuntu/debian一起工​​作,通常是通过做_apt-get install solr-jetty_然后你需要为solr定义你的模式并创建一个核心。您将使用jetty init启动脚本启动它。我从不碰start.jar – 2013-04-22 19:53:51

回答

0

码头通常用作嵌入式容器。如果你想使用码头,那么一个好的开始就是复制示例目录并将其重命名为你想要的。 solr目录是用于基本配置的目录。

否则建议使用tomcat和solr.war文件。

2

的start.jar是,致力于打造出了所有用于启动码头classpath中要求码头具体机制。它通常只用于码头分配的范围。将start.jar拉出配置并将其放置在其他位置会使start.config的默认配置更加模糊。

我的Solr的理解是,它捆绑了自己与码头的分布,将它所需要碰上分配和重新包装作为自己。他们可能有一个自定义的start.config文件,它可以进一步为classpath资源等添加自己的位置。

你seeings唯一的例外来自start.config文件预计其用于配置码头过程中的等/含目录的jetty.xml格式的XML文件造成的。

码头被经常在嵌入式格式使用有一点做这个问题,它只是一个普通的用例,因为码头是非常容易嵌入到应用程序。嵌入的jetty实例很少(如果有的话)利用start.jar ...,而是由嵌入式应用程序来管理自己的类路径。

4

您还需要定义jetty.home财产。请尝试:

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

你保存了我的培根!谢谢瑞恩! – chrislondon 2014-01-23 23:05:03

1

首先,你需要改变你的文件夹,start.jar的位置,然后执行相同的命令。