Apache Solr - TransformerProvider - SolrResourceNotFoundException:无法找到资源' xslt / atom.xsl'

时间:2017-08-12 20:54:23

标签: apache xslt solr

运行Apache Solr我收到错误:

 662216 ERROR (qtp5592464-16) [   x:mysolrdb] o.a.s.u.x.TransformerProvider org.apache.solr.util.xslt.TransformerProvider
local-solr | org.apache.solr.core.SolrResourceNotFoundException: Can't find resource 'xslt/atom.xsl' in classpath or '/opt/solr/server/solr/mycores/mysolrdb'local-solr |    at org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoader.java:408)
local-solr |    at org.apache.solr.util.xslt.TransformerProvider.getTemplates(TransformerProvider.java:109)
local-solr |    at org.apache.solr.util.xslt.TransformerProvider.getTransformer(TransformerProvider.java:81)
local-solr |    at org.apache.solr.response.XSLTResponseWriter.getTransformer(XSLTResponseWriter.java:131)
local-solr |    at org.apache.solr.response.XSLTResponseWriter.getContentType(XSLTResponseWriter.java:71)
local-solr |    at org.apache.solr.servlet.HttpSolrCall.writeResponse(HttpSolrCall.java:715)
local-solr |    at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:469)
local-solr |    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257)
local-solr |    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208)
local-solr |    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
local-solr |    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
local-solr |    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
local-solr |    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
local-solr |    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
local-solr |    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
local-solr |    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
local-solr |    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
local-solr |    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
local-solr |    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
local-solr |    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
local-solr |    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
local-solr |    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
local-solr |    at org.eclipse.jetty.server.Server.handle(Server.java:499)
local-solr |    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
local-solr |    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
local-solr |    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
local-solr |    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
local-solr |    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
local-solr |    at java.lang.Thread.run(Thread.java:748)

Solr在docker中运行,进程命令为:

/docker-java-home/jre/bin/java -server -Xms512m -Xmx512m -XX:NewRatio=3 -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ConcGCThreads=4 -XX:ParallelGCThreads=4 -XX:+CMSScavengeBeforeRemark -XX:PretenureSizeThreshold=64m -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:CMSMaxAbortablePrecleanTime=6000 -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/opt/solr/server/logs/solr_gc.log -Djetty.port=8983 -DSTOP.PORT=7983 -DSTOP.KEY=solrrocks -Duser.timezone=UTC -Djetty.home=/opt/solr/server -Dsolr.solr.home=/opt/solr/server/solr -Dsolr.install.dir=/opt/solr -Xmx3g -Xms512m -XX:MaxPermSize=512m -Xss256k -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=60 -jar start.jar --module=http

对Solr的内部工作方式不是很熟悉,欢迎指点

2 个答案:

答案 0 :(得分:1)

您正在使用solrconfig.xml中的某个转换器,该转换器需要在您的核心下的目录conf \ xslt中的文件atom.xsl。

也许你没有专门使用它,但它是Solr捆绑的样本配置的遗留物。如果是这样,只需从sorlconfig.xml中删除未使用的东西,否则,将atom.xsl添加到正确的位置。

答案 1 :(得分:1)

关于solr中XSLTResponseWriter的这些观点可能会对您有所帮助。

  • 介绍如何显示XML文档
  • Solr中的XSLT Response Writer将XML样式表应用于输出。
  • tr参数,用于标识要使用的XML转换

例如:

http://localhost:8983/solr/solrfeatures/select/?q=ipod&indent=on&wt=xslt&tr=example.xsl

http://localhost:8983/solr/solrfeatures/select/?q=ipod&indent=on&wt=xslt&tr=example_atom.xsl

这里的example.xsl和example_atom.xsl是样式表转换示例,它们附带了solr安装,可以在xslt文件夹中找到。即

  

的solr-6.1.0 /服务器/ solr的/集合名称/ CONF / XSLT

交叉检查if atom.xsl是否存在于指定路径(xslt文件夹)