You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Pavel Bonbarev <p....@eventoni.de> on 2010/07/01 18:52:21 UTC

Error loading custom jar file on Tomcat

  I have developed my custom factory class 
solr.HyphenationCompoundWordTokenFilterFactory

It works properly with Solr Night build snapshot under Windows: I have 
copied compiled jar file HyphenationCompoundWordTokenFilterFactory.class

into 
C:\hudson\apache-solr-4.0-2010-06-30_08-05-55\example\work\Jetty_0_0_0_0_8983_solr.war__solr__k1kf17\webapp\WEB-INF\lib\apache-solr-core-4.0-2010-06-30_08-05-55.jar\org\apache\solr\analysis\

add to xml
<filter class="solr.HyphenationCompoundWordTokenFilterFactory" 
hyphenator="de_DR.xml" dictionary="de_DE_frami.dic" minSubwordSize="3"/>

and restart jetty server

But I can not do it with Linux/Tomcat

the same with archive
/opt/tomcat6/webapps/solr-nightbuild/WEB-INF/lib/apache-solr-core-4.0-2010-06-30_08-05-55.jar

But error:

_Severe errors in solr configuration. Check your log files for more 
detailed information on what may be wrong. 
------------------------------------------------------------- 
java.lang.NoClassDefFoundError: 
org/apache/solr/analysis/HyphenationCompoundWordTokenFilterFactory 
(wrong name: HyphenationCompoundWordTokenFilterFactory) at 
java.lang.ClassLoader.defineClass1(Native Method) at 
java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at 
java.lang.ClassLoader.defineClass(ClassLoader.java:616) at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at 
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527) 
at 
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010) 
at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:296) at 
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:627) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:248) at 
java.lang.Class.forName0(Native Method) at 
java.lang.Class.forName(Class.java:247) at 
org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:382) 
at 
org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:403) 
at 
org.apache.solr.util.plugin.AbstractPluginLoader.create(AbstractPluginLoader.java:85) 
at 
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:142) 
at org.apache.solr.schema.IndexSchema.readAnalyzer(IndexSchema.java:935) 
at org.apache.solr.schema.IndexSchema.access$100(IndexSchema.java:60) at 
org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:450) at 
org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:435) at 
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:142) 
at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:480) 
at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:122) at 
org.apache.solr.core.CoreContainer.create(CoreContainer.java:429) at 
org.apache.solr.core.CoreContainer.load(CoreContainer.java:286) at 
org.apache.solr.core.CoreContainer.load(CoreContainer.java:198) at 
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:123) 
at 
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:86) 
at 
org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) 
at 
org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) 
at 
org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) 
at 
org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838) 
at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4488) at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) 
at 
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) 
at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) 
at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) 
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 
at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
at 
org.apache.catalina.core.StandardService.start(StandardService.java:519) 
at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:581) 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.catalina.startup.Bootstrap.start(Bootstrap.java:289) at 
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414_

-- 
Mit freundlichen Gr��en,

i.A. Pavel Bondarev
Softwareentwickler (Dipl.-Math.(FH))

Eventoni GmbH
Uferstr. 27, 95028 Hof


Re: Error loading custom jar file on Tomcat

Posted by Chris Hostetter <ho...@fucit.org>.
: It works properly with Solr Night build snapshot under Windows: I have copied
: compiled jar file HyphenationCompoundWordTokenFilterFactory.class
: 
: into
: C:\hudson\apache-solr-4.0-2010-06-30_08-05-55\example\work\Jetty_0_0_0_0_8983_solr.war__solr__k1kf17\webapp\WEB-INF\lib\apache-solr-core-4.0-2010-06-30_08-05-55.jar\org\apache\solr\analysis\

1) Don't do that.

this is a really bad idea for loading custom classes in Solr.  Compile 
your class, put it into your *own* jar, and then configure SOlr to load 
that jar...

http://wiki.apache.org/solr/SolrPlugins#How_to_Load_Plugins

2) The specific error you are getting...

: java.lang.NoClassDefFoundError:
: org/apache/solr/analysis/HyphenationCompoundWordTokenFilterFactory (wrong
: name: HyphenationCompoundWordTokenFilterFactory) at

indicates that the class file java is finding when it loads 
org/apache/solr/analysis/HyphenationCompoundWordTokenFilterFactory out of 
the classpath doesn't actually have the fully qualified package name that 
matches where you put it.

Googling for "java.lang.NoClassDefFoundError wrong name" turned up lots of 
explanation on this type of error, here is a very nicely written straight 
forward one...

http://www.cs.usfca.edu/~parrt/course/601/lectures/java.tools.html


-Hoss


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org