Ubuntu12.04にSolr4.3をインストールするのに大きな問題があります。まず、Tomcatをインストールしました。 localhost:8080のブラウザからTomcatにアクセスできます。 「TomcatWebApplication Manager」に、「2solr.war」ファイルを介してSolr 4.3をインストールしようとしています。ファイルはアップロードされてデプロイされていますが、開始できません。「FAIL-コンテキストパス/ solrのアプリケーションを開始できませんでした」。
ログファイル(localhost.log
) のように見える:
07.05.2013 11:05:36 org.Apache.catalina.core.ApplicationContext log
INFO: HTMLManager: start: Starting web application at '/solr'
07.05.2013 11:05:36 org.Apache.catalina.core.StandardContext filterStart
SCHWERWIEGEND: Exception starting filter SolrRequestFilter
org.Apache.solr.common.SolrException: Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. For more information, see: http://wiki.Apache.org/solr/SolrLogging
at org.Apache.solr.servlet.SolrDispatchFilter.<init>(SolrDispatchFilter.Java:105)
... 33 more
07.05.2013 11:05:36 org.Apache.catalina.core.ApplicationContext log
INFO: HTMLManager: list: Listing contexts for virtual Host 'localhost'
07.05.2013 11:05:36 org.Apache.catalina.core.StandardContext filterStart
SCHWERWIEGEND: Exception starting filter SolrRequestFilter
org.Apache.solr.common.SolrException: Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. For more information, see: http://wiki.Apache.org/solr/SolrLogging
at org.Apache.solr.servlet.SolrDispatchFilter.<init>(SolrDispatchFilter.Java:105)
... 21 more
カタリナ.....ログ
07.05.2013 11:05:36 org.Apache.catalina.core.StandardContext start
SCHWERWIEGEND: Error filterStart
07.05.2013 11:05:36 org.Apache.catalina.core.StandardContext start
SCHWERWIEGEND: Context [/solr] startup failed due to previous errors
07.05.2013 11:05:36 org.Apache.catalina.startup.HostConfig checkResources
INFO: Reloading context [/solr]
07.05.2013 11:05:36 org.Apache.catalina.core.StandardContext stop
INFO: Container org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/solr] has not been started
07.05.2013 11:05:36 org.Apache.catalina.core.StandardContext start
SCHWERWIEGEND: Error filterStart
07.05.2013 11:05:36 org.Apache.catalina.core.StandardContext start
SCHWERWIEGEND: Context [/solr] startup failed due to previous errors
誰かが私を助けて、何をすべきか教えてもらえますか?
ログが言うように-Could not find necessary SLF4j logging jars.
Slf4jjarがありません。
slf4j
jarを$CATALINA_BASE/lib
フォルダーに配置します。詳細については、こちらをご覧ください こちら
コピーしたくない場合は、CLASSPATH変数を変更して、関連するすべてのものを含めることができます。
これはあなたができることの例です:
cd /tmp
wget http://www.slf4j.org/dist/slf4j-1.6.6.Zip
unzip slf4j-1.6.6.Zip
mv slf4j-1.6.6/integration/lib slf4j
CLASSPATH="`find /tmp/slf4j/ -type f | xargs echo | sed 's/ /:/g'`"
それはあなたに次のようなものを与えるでしょう:
# echo $CLASSPATH
/tmp/slf4j/slf4j-api-1.6.99.jar:/tmp/slf4j/slf4j-simple-1.6.99.jar:/tmp/slf4j/slf4j-simple-1.5.11.jar:/tmp/slf4j/slf4j-simple-1.4.2.jar:/tmp/slf4j/slf4j-api-1.5.11.jar:/tmp/slf4j/slf4j-simple-1.5.4-SNAPSHOT.jar:/tmp/slf4j/slf4j-nop-1.5.6.jar:/tmp/slf4j/slf4j-1.6.6.Zip:/tmp/slf4j/slf4j-simple-1.5.0.jar:/tmp/slf4j/slf4j-api-2.0.99.jar
変数CLASSPATHは、Tomcatの/ etc/default/Tomcat7(またはRHELディストリビューション/etc/Tomcat7/Tomcat7.conf)で設定できます。したがって、Tomcatが起動すると、catalina.outに次のようなものが表示されます。
SLF4J: Found binding in [jar:file:/tmp/slf4j/slf4j-nop-1.5.6.jar!/org/slf4j impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/tmp/slf4j/slf4j-simple-1.4.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/tmp/slf4j/slf4j-simple-1.5.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/tmp/slf4j/slf4j-simple-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/tmp/slf4j/slf4j-simple-1.5.4-SNAPSHOT.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/tmp/slf4j/slf4j-simple-1.6.99.jar!/org/slf4j/impl/StaticLoggerBinder.class]
変数を設定する方が、システムを維持してからコピーする方がはるかにクリーンな方法だと思います。
必要に応じて、slf4jパッケージのlibsをオフコースで使用できます(dpkg -L libslf4j-Java/rpm -ql slf4jでライブラリがインストールされている場所を確認し、/ usr/share/Javaからjarを取得します)。また、システムツール(apt-get/yum)を使用してslf4j(およびCLASSPATH変数を介して「含める」他のライブラリ)をアップグレードできるという利点もあります。
お役に立てれば。
PS。 Debian/Ubuntuを使用する場合は、追加の手順があります。Java_OPTSを変更して以下を含める必要があります。
Java_OPTS="${Java_OPTS} -classpath ${CLASSPATH}"
これが機能するために。 Debian/UbuntuにはRHELベースのディストリビューションとして構成変数CLASSPATHがないようです。
これらのメッセージがログファイルで言うことを正確に行う必要があります。
SLF4j
ロギングjarを<solr>/example/lib/ext/*.jar
からTomcatLib(例:Tomcat_HOME/lib
、/usr/share/Tomcat/lib
)またはWebapp Libディレクトリ(例:Tomcat_HOME/webapps/solr/WEB-INF/lib
)にコピーします。これらのjarファイルはSLF4J
とlog4j
を設定します。Jettyを使用している場合、
SLF4j
ロギングjarはjettylib/extディレクトリに配置する必要があります。他のコンテナの場合は、対応するディレクトリを使用する必要があります。詳細については、以下を参照してください。 http://wiki.Apache.org/solr/SolrLogging
言い換えると、SolrをTomcatで正しく動作させるには、次のことを行う必要があります。
SLF4jログjarを<solr>/example/lib/ext/*.jar
からTomcatLib(例:Tomcat_HOME/lib
、/usr/share/Tomcat/lib
)またはWebapp Libディレクトリ(例:Tomcat_HOME/webapps/solr/WEB-INF/lib
)にコピーします。これらのjarは、SLF4Jとlog4jをセットアップします。
OSベンダーから入手可能なTomcatパッケージを使用するDebianまたはUbuntuサーバーの場合、これは/usr/share/Tomcat6/lib
または/usr/share/Tomcat7/lib
である可能性があります。
例えば:
# cp -v /opt/solr-4.10.4/example/lib/ext/*.jar /usr/share/tomcat?/lib/
または:
# cp -v /opt/solr-4.10.4/example/lib/ext/*.jar /var/lib/Tomcat7/webapps/solr/WEB-INF/lib/
または、jarファイルを指すようにCLASSPATH
を設定します。
ロギング設定をsolr/example/resources/log4j.properties
からクラスパス上の場所にコピーします。通常、上記のjarファイルと同じ場所を使用して、優先するログの宛先の構成ファイルを編集できます。
オプションで、クラスパスにlog4j.properties
を配置しなかった場合は、Javaオプション:-Dlog4j.configuration=file:///path/to/log4j.properties
を設定します。
Tomcatを再起動します(例:Sudo /etc/init.d/Tomcat7 restart
)。
それでも問題が解決しない場合は、サーバーを-Dlog4j.debug=true
で起動して、詳細を確認すると役立つ場合があります。