Solr+XSLT output problem; trying to use "wt=xslt" fails with a NoClassDefFoundError

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Solr+XSLT output problem; trying to use "wt=xslt" fails with a NoClassDefFoundError

Benjamin O'Steen-2

URL query:
http://orasupport.ouls.ox.ac.uk:8080/solr/select/?q=bishop&wt=xslt&tr=at
om.xsl

Solr home is located at /home/bugz/solr and tomcat home is at
/home/bugz/fedora/tomcat. The solr home is set in the CATALINA_OPTS
environment var. Note that other search types work fine - removing wt,
or changing the 'xslt' for python, ruby or json will result in a
successful response.

Error: type Status report

message null java.lang.NoClassDefFoundError at
org.apache.solr.request.XSLTResponseWriter.getTransformer(XSLTResponseWr
iter.java:115) at
org.apache.solr.request.XSLTResponseWriter.getContentType(XSLTResponseWr
iter.java:64) at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.j
ava:167) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:186) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:198) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:152) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:462) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:137) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:118) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:79
9) at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:705) at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57
7) at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:683) at java.lang.Thread.run(Thread.java:595)

description The server encountered an internal error (null
java.lang.NoClassDefFoundError at
org.apache.solr.request.XSLTResponseWriter.getTransformer(XSLTResponseWr
iter.java:115) at
org.apache.solr.request.XSLTResponseWriter.getContentType(XSLTResponseWr
iter.java:64) at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.j
ava:167) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:186) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:198) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:152) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:462) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:137) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:118) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109) at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:79
9) at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:705) at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57
7) at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:683) at java.lang.Thread.run(Thread.java:595) ) that prevented it
from fulfilling this request.


Any clues? (atom.xsl lives in $SOLR_HOME/conf/xslt)

Ben
Reply | Threaded
Open this post in threaded view
|

Re: Solr+XSLT output problem; trying to use "wt=xslt" fails with a NoClassDefFoundError

hossman

: Error: type Status report
:
: message null java.lang.NoClassDefFoundError at
: org.apache.solr.request.XSLTResponseWriter.getTransformer(XSLTResponseWr
: iter.java:115) at

This is pretty puzzling ... my best guess is that either:
  1) something about your tomcat setup is causing the javax.xml.* classes
     to not be available at runtime.
  2) the TransformerFactory that your JVM wants to use (as specified by
     the "javax.xml.transform.TransformerFactory" system property) can't
     be loaded ... i think that would also trigger a NoClassDefFoundError
     but i'm not positive.

...with your current tomcat setup, can you write a simple little JSP that
uses TransformerFactory to do an XSLT transform?  (if not: then you have a
simplified, non-solr, test case to troubleshoot -- maybe with help from a
Tomcat expert)


-Hoss