You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Karen Loughran <k....@qub.ac.uk> on 2007/07/04 12:34:34 UTC

java.lang.ExceptionInInitializerError - Can't find resource 'solrconfig.xml'


Hi there,

I have a standalone java/solr embedded application (based on Embedded Solr).
I can call it from the command prompt by passing solr.home as system property 
( -Dsolr.solr.home=/opt/all/solr ) and all works fine.

But if I put a webservice infront of it ,which essentially provides an webapp 
api to the standalone (deployed in tomcat 5.5.23) and set up solr.home via 
JNDI I get the exception below.   The trace indicates that it is correctly 
using JNDI solr.home "/opt/all/solr" which does have conf directory with 
solrconfig.xml, etc.  It is the same solr.home which works for testing 
standalone.  But the stack trace below reports that it can't find 
solrconfig.xml at this location.

Any ideas as to what is happening ? 

Many Thanks
Karen

PS. Using Solr 1.2



04-Jul-2007 11:16:39 org.apache.solr.core.Config getInstanceDir
INFO: Using JNDI solr.home: "/opt/all/solr"
04-Jul-2007 11:16:39 org.apache.solr.core.Config setInstanceDir
INFO: Solr home set to '"/opt/all/solr"/'
java.lang.ExceptionInInitializerError
	at org.apache.solr.update.SolrIndexConfig.<clinit>(SolrIndexConfig.java:36)
	at org.apache.solr.core.SolrCore.<clinit>(SolrCore.java:84)
	at uk.ac.besc.prism.searcher.impl.searcher.<clinit>(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at org.apache.axis.utils.ClassUtils$1.run(ClassUtils.java:127)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:122)
	at org.apache.axis.utils.cache.ClassCache.lookup(ClassCache.java:85)
	at 
org.apache.axis.providers.java.JavaProvider.getServiceClass(JavaProvider.java:428)
	at 
org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:461)
	at 
org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:286)
	at 
org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:500)
	at 
org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:274)
	at 
org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:260)
	at 
org.apache.axis.deployment.wsdd.WSDDDeployment.getService(WSDDDeployment.java:427)
	at 
org.apache.axis.configuration.FileProvider.getService(FileProvider.java:231)
	at org.apache.axis.AxisEngine.getService(AxisEngine.java:311)
	at org.apache.axis.MessageContext.setTargetService(MessageContext.java:756)
	at org.apache.axis.handlers.http.URLMapper.invoke(URLMapper.java:50)
	at org.apache.axis.handlers.http.URLMapper.generateWSDL(URLMapper.java:58)
	at org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:33)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:104)
	at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:446)
	at org.apache.axis.transport.http.QSWSDLHandler.invoke(QSWSDLHandler.java:68)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at 
org.apache.axis.transport.http.AxisServlet.processQuery(AxisServlet.java:1226)
	at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:249)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at 
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
	at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.RuntimeException: Error in solrconfig.xml
	at org.apache.solr.core.SolrConfig.<clinit>(SolrConfig.java:90)
	... 49 more
Caused by: java.lang.RuntimeException: Can't find resource 'solrconfig.xml' in 
classpath or '"/opt/all/solr"/conf/', cwd=/opt/all/apache-tomcat-5.5.23
	at org.apache.solr.core.Config.openResource(Config.java:357)
	at org.apache.solr.core.SolrConfig.initConfig(SolrConfig.java:79)
	at org.apache.solr.core.SolrConfig.<clinit>(SolrConfig.java:87)
	... 49 more
2007-07-04 11:16:39,684 DEBUG impl.searcher [debug:138] [forName0@-2]Exiting 
static initialiser of searcher 



Re: java.lang.ExceptionInInitializerError - Can't find resource 'solrconfig.xml'

Posted by Karen Loughran <k....@qub.ac.uk>.
Chris,
When I remove the surrounding quotes from solr path in my web.xml it works !
Thanks for your help
Karen


On Wednesday 04 July 2007 16:56:40 Chris Hostetter wrote:
> : But if I put a webservice infront of it ,which essentially provides an
> : webapp api to the standalone (deployed in tomcat 5.5.23) and set up
> : solr.home via JNDI I get the exception below.   The trace indicates that
> : it is correctly using JNDI solr.home "/opt/all/solr" which does have conf
> : directory with
>
> note the quote characters in the logging and read further down in the
> stack trace...
>
> : 04-Jul-2007 11:16:39 org.apache.solr.core.Config getInstanceDir
> : INFO: Using JNDI solr.home: "/opt/all/solr"
> : 04-Jul-2007 11:16:39 org.apache.solr.core.Config setInstanceDir
> : INFO: Solr home set to '"/opt/all/solr"/'
>
> 	...
>
> : Caused by: java.lang.RuntimeException: Error in solrconfig.xml
> : 	at org.apache.solr.core.SolrConfig.<clinit>(SolrConfig.java:90)
> : 	... 49 more
> : Caused by: java.lang.RuntimeException: Can't find resource
> : 'solrconfig.xml' in classpath or '"/opt/all/solr"/conf/',
> : cwd=/opt/all/apache-tomcat-5.5.23
>
> ...it looks like when you set solr home using JNDI, the mechanism you are
> using is actaully putting the quote characters in the value, so it's
> trying to find a file with the path...
> 	"/opt/all/solr"/conf/
>
>
>
>
> -Hoss



Re: java.lang.ExceptionInInitializerError - Can't find resource 'solrconfig.xml'

Posted by Chris Hostetter <ho...@fucit.org>.
: But if I put a webservice infront of it ,which essentially provides an webapp
: api to the standalone (deployed in tomcat 5.5.23) and set up solr.home via
: JNDI I get the exception below.   The trace indicates that it is correctly
: using JNDI solr.home "/opt/all/solr" which does have conf directory with

note the quote characters in the logging and read further down in the
stack trace...

: 04-Jul-2007 11:16:39 org.apache.solr.core.Config getInstanceDir
: INFO: Using JNDI solr.home: "/opt/all/solr"
: 04-Jul-2007 11:16:39 org.apache.solr.core.Config setInstanceDir
: INFO: Solr home set to '"/opt/all/solr"/'
	...
: Caused by: java.lang.RuntimeException: Error in solrconfig.xml
: 	at org.apache.solr.core.SolrConfig.<clinit>(SolrConfig.java:90)
: 	... 49 more
: Caused by: java.lang.RuntimeException: Can't find resource 'solrconfig.xml' in
: classpath or '"/opt/all/solr"/conf/', cwd=/opt/all/apache-tomcat-5.5.23


...it looks like when you set solr home using JNDI, the mechanism you are
using is actaully putting the quote characters in the value, so it's
trying to find a file with the path...
	"/opt/all/solr"/conf/




-Hoss