Hi,

I am trying to define a custom FieldType for SOLR 1.4.1.

To this end, I created the JAR file TestType.jar, I added a lib path in
solrconfig.xml so that this JAR file
as well as apache-solr-core-1.4.1.jar  and lucene-core-2.9.3.jar are
included.

I then edited schema.xml and defined my new type:
    <fieldType name="myloc" class="afg.TestType" sortMissingLast="true"
omitNorms="true"/>

Starting up SOLR, I see that my classes have been loaded successfully:

INFO: Adding
'file:/home/steffis/solr/apache-solr-1.4.1/my_jars/lucene-core-2.9.3.jar' to
classloader
Nov 23, 2010 5:26:27 PM org.apache.solr.core.SolrResourceLoader
replaceClassLoader
INFO: Adding
'file:/home/steffis/solr/apache-solr-1.4.1/my_jars/TestType.jar' to
classloader
Nov 23, 2010 5:26:27 PM org.apache.solr.core.SolrResourceLoader
replaceClassLoader
INFO: Adding 'file:/home/steffis/solr/apache-solr-1.4.1/my_jars/META-INF/'
to classloader
Nov 23, 2010 5:26:27 PM org.apache.solr.core.SolrResourceLoader
replaceClassLoader

But when schema.xml is processed, I get a load error. Now superclass
FieldType of TestType cannot be found.

INFO: created pdate: org.apache.solr.schema.DateField
Nov 23, 2010 6:26:13 PM org.apache.solr.servlet.SolrDispatchFilter init

SEVERE: Could not start SOLR. Check solr/home property
java.lang.NoClassDefFoundError: org/apache/solr/schema/FieldType
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at
org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:314)
    at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:615)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at
org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:359)
    at
org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:390)
    at org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:419)
    at org.apache.solr.schema.IndexSchema$1.create(IndexSchema.java:447)
    at
org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:141)
    at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:456)
    at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:95)
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:520)
    at
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:137)
    at
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:83)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:99)
    at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:594)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
    at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
    at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
    at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
    at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
    at
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
    at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
    at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
    at org.mortbay.jetty.Server.doStart(Server.java:210)
    at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
    at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:929)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.mortbay.start.Main.invokeMain(Main.java:183)
    at org.mortbay.start.Main.start(Main.java:497)
    at org.mortbay.start.Main.main(Main.java:115)
Caused by: java.lang.ClassNotFoundException:
org.apache.solr.schema.FieldType
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    ... 50 more

Is this a known problem? What can I do to fix this?

Cheers,
Steffi

Reply via email to