我无法让solr dataimportscheduler工作。我有最新的jar文件,它包含了所需的所有类文件。我试图启动tomcat时遇到错误。
Jun 21, 2012 11:36:06 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.apache.solr.handler.dataimport.scheduler.ApplicationListener
java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.scheduler.ApplicationListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4715)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1617)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Jun 21, 2012 11:36:06 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
我假设他们说“不要忘记将以下监听器声明添加到Solr的web.xml中:
<listener>
<listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>
</listener>
这意味着将以下行添加到Tomcat的web.xml
<listener>
<listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>
</listener>
非常感谢任何帮助。
由于
更新:
我更新了solr的web.xml,现在tomcat启动时没有任何错误,但是当计划任务运行时,它会使我的索引空白。我有多个solr核心......我把dataimport.properties放在根文件夹中,每个核心放一个。这就是我的属性文件在根目录中的样子。
#################################################
# #
# dataimport scheduler properties #
# #
#################################################
syncEnabled=1
syncCores=Internal.Locations #(Locations is a folder inside Internal)
server=localhost
port=8080
webapp=solr
params=/select?qt=/dataimport&command=delta-import&clean=false&commit=true
interval=10
答案 0 :(得分:1)
属性文件中列出的核心就是这样,Scheduler可以汇编调用数据导入的URL。
这正是您需要在您的属性文件中放置的内容,当您从浏览器手动触发DIH时,以逗号分隔核心名称,因为它们在URL中列出。
当然,您知道核心是在solr/solr.xml
中配置的。
顺便说一下,你应该在你的Tomcat控制台(或日志文件)中看到这一行:
<index update process> Multiple cores identified in dataimport.properties. Sync active for: list-of-your-cores