java.lang.NoSuchMethodError: com.chenlb.mmseg4j.analysis..(Lcom/chenlb/mmseg4j/Seg;)V

mmseg4j-core-1.10.0.jar,mmseg4j-analysis-1.9.1.jar,mmseg4j-solr-2.3.0.jar  solr5.2.1

centos6 solr中添加mmseg 编码会出如下错误,同样的程序在centos7 和ubuntu上却没有出现。


509385 [http-nio-8983-exec-4] INFO  org.apache.solr.core.SolrCore.Request  [   db] – [db] webapp=/solr path=/admin/luke params={show=schema&wt=json&_=1440031905605} status=0 QTime=2 

509418 [http-nio-8983-exec-10] INFO  com.chenlb.mmseg4j.solr.MMSegTokenizerFactory  [   db] – create new Seg ...
509419 [http-nio-8983-exec-10] INFO  com.chenlb.mmseg4j.solr.MMSegTokenizerFactory  [   db] – use complex mode
509420 [http-nio-8983-exec-10] ERROR org.apache.solr.servlet.SolrDispatchFilter  [   db] – null:
at org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:593)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:465)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoSuchMethodError: com.chenlb.mmseg4j.analysis..(Lcom/chenlb/mmseg4j/Seg;)V
at com.chenlb.mmseg4j.solr.MMSegTokenizerFactory.newTokenizer(MMSegTokenizerFactory.java:56)
at com.chenlb.mmseg4j.solr.MMSegTokenizerFactory.create(MMSegTokenizerFactory.java:49)
at org.apache.lucene.analysis.util.TokenizerFactory.create(TokenizerFactory.java:75)
at org.apache.solr.handler.AnalysisRequestHandlerBase.analyzeValue(AnalysisRequestHandlerBase.java:116)
at org.apache.solr.handler.FieldAnalysisRequestHandler.analyzeValues(FieldAnalysisRequestHandler.java:221)
at org.apache.solr.handler.FieldAnalysisRequestHandler.handleAnalysisRequest(FieldAnalysisRequestHandler.java:190)
at org.apache.solr.handler.FieldAnalysisRequestHandler.doAnalysis(FieldAnalysisRequestHandler.java:102)
at org.apache.solr.handler.AnalysisRequestHandlerBase.handleRequestBody(AnalysisRequestHandlerBase.java:63)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
... 20 more


510437 [http-nio-8983-exec-7] INFO  org.apache.solr.servlet.SolrDispatchFilter  [   ] – [admin] webapp=null path=/admin/cores params={indexInfo=false&wt=json&_=1440031906660} status=0 QTime=0 


如果在centos6上使用mmseg4j-core-1.9.1.jar,mmseg4j-analysis-1.9.1.jar,mmseg4j-solr-1.9.1.jar  solr5.2.1

会报如下问题

Caused by: java.lang.AbstractMethodError
	at org.apache.lucene.analysis.util.TokenizerFactory.create(TokenizerFactory.java:75)
	at org.apache.solr.handler.AnalysisRequestHandlerBase.analyzeValue(AnalysisRequestHandlerBase.java:116)
	at org.apache.solr.handler.FieldAnalysisRequestHandler.analyzeValues(FieldAnalysisRequestHandler.java:221)
	at org.apache.solr.handler.FieldAnalysisRequestHandler.handleAnalysisRequest(FieldAnalysisRequestHandler.java:190)
	at org.apache.solr.handler.FieldAnalysisRequestHandler.doAnalysis(FieldAnalysisRequestHandler.java:102)
	at org.apache.solr.handler.AnalysisRequestHandlerBase.handleRequestBody(AnalysisRequestHandlerBase.java:63)
	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
	... 20 more

查看源码为:

@Override
public Tokenizer create(AttributeFactory factory, Reader input) {
MMSegTokenizer tokenizer = tokenizerLocal.get();
if(tokenizer == null) {
tokenizer = newTokenizer(input);
} else {
try {
tokenizer.setReader(input);
} catch (IOException e) {
tokenizer = newTokenizer(input);
log.info("MMSegTokenizer.reset i/o error by:"+e.getMessage());
}
}


return tokenizer;
}


private MMSegTokenizer newTokenizer(Reader input) {
MMSegTokenizer tokenizer = new MMSegTokenizer(newSeg(getOriginalArgs()), input);
tokenizerLocal.set(tokenizer);
return tokenizer;
}


以上原因不明,为何同样的包在不同的操作系统上会有不同的运行机制。

以上问题虽然可以更改操作系统解决,但是还是心存疑惑,如果有哪位了解原因请联系我


你可能感兴趣的:(solr,java类,linux)