您的位置:首页 > 编程语言 > Java开发

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

2015-08-20 09:56 513 查看
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..<init>(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;

}

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

以上问题虽然可以更改操作系统解决,但是还是心存疑惑,如果有哪位了解原因请联系我
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: