SOLR 4.9的SolrTestCaseJ4错误(与SOLR 4.8.1一起使用)

时间:2016-04-14 20:36:36

标签: solr solr4

我尝试从SOLR 4.8.1升级到SOLR 4.9。当我尝试使用SolrTestCaseJ4运行时,我们的一些与4.8.1一起使用的测试用例(使用SOLR 4.9框架)失败了。 我试图找出(并修复)测试用例。

我们正在使用maven surefire插件和JUNIT来运行测试。

Error: 
java.lang.IllegalAccessError: class org.apache.lucene.codecs.diskdv.DiskDocValuesFormat$1 cannot access its superclass org.apache.lucene.codecs.lucene45.Lucene45DocValuesConsumer 
        at __randomizedtesting.SeedInfo.seed([3C587EB0DE791716]:0) 
        at java.lang.ClassLoader.defineClass1(Native Method) 
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
        at java.security.AccessController.doPrivileged(Native Method) 
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
        at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
        at java.lang.Class.getDeclaredConstructors0(Native Method) 
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585) 
        at java.lang.Class.getConstructor0(Class.java:2885) 
        at java.lang.Class.newInstance(Class.java:350) 
        at org.apache.lucene.util.NamedSPILoader.reload(NamedSPILoader.java:67) 
        at org.apache.lucene.codecs.DocValuesFormat.reloadDocValuesFormats(DocValuesFormat.java:121) 
        at org.apache.solr.core.SolrResourceLoader.reloadLuceneSPI(SolrResourceLoader.java:205) 
        at org.apache.solr.core.SolrConfig.initLibs(SolrConfig.java:587) 
        at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:162) 
        at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:139) 
        at org.apache.solr.util.TestHarness.createConfig(TestHarness.java:74) 
        at org.apache.solr.SolrTestCaseJ4.createCore(SolrTestCaseJ4.java:553) 
        at org.apache.solr.SolrTestCaseJ4.initCore(SolrTestCaseJ4.java:546) 
        at org.apache.solr.SolrTestCaseJ4.initCore(SolrTestCaseJ4.java:366) 

SOLR 4.9发行说明,&#34; 从Solr 4.8升级&#34;,我看到:

  

支持DiskDocValuesFormat(即:使用。配置的fieldTypes)   docValuesFormat =&#34; Disk&#34;)由于性能不佳而被删除。

因此,lucene-codecs-4.9.0.jar没有&#34; DiskDocValuesFormat$1&#34;这个课程有点道理。

问题是:我该怎么做才能摆脱这个错误?因为它似乎来自SolrTestCaseJ4内部。我们的代码库不会将DiskDocValuesFormat用于任何fieldType。

根据我的观察,SolrTestCaseJ4似乎将不同的编解码器(随机)传递给测试用例,但无论选择哪种编解码器,错误总是与上面提到的相同。

我在lucene论坛上发现了以下内容,它提到了我在相同的错误,但在不同的背景下。但是,没有提到解决方案。见链接:

Have anyone used Automatic Phrase Tokenization (AutoPhrasingTokenFilterFactory) ?

请告知我做错了什么。

谢谢, 斯里兰卡

0 个答案:

没有答案