首页 > 代码库 > 项目遇见问题解决记录

项目遇见问题解决记录

问题:

ERROR org.springframework.web.context.ContextLoader:(ContextLoader.java:215) 
 - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘productSearchServiceBean‘: Injection of resource methods failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘compass‘ defined in class path resource [beans.xml]: Invocation of init method failed; nested exception is org.compass.core.engine.SearchEngineException: Cannot instantiate Lucene Analyzer [net.paoding.analysis.analyzer.PaodingAnalyzer] for analyzer [default]. Please verify the analyzer setting at [type]; nested exception is net.paoding.analysis.exception.PaodingAnalysisException: dic home should not be a file, but a directory!

 

解决方案:

①通过search engine 去检索您的所需答案,like this link:http://zhidao.baidu.com/question/273848534.html?qbl=relate_question_0

主要content like follow part:

  启动服务器的时候抛出 dic home should not be a file, but a directory! 

分析问题:这是因为PaodingMaker.getFile()方法中采用了老版本的java.net.URL.getFile(),不能够识别中文或者空格,只有采用URL.toURI().getPath()才能识别汉字与空格。

解决问题:需要修改一下Paoding中的代码了。找到PaodingMaker.java的setDicHomeProperties方法,修改File dicHomeFile = getFile(dicHome);为
1 File dicHomeFile2 = getFile(dicHome);    
2 String path="";    
3 
4 try {    
5     path = URLDecoder.decode(dicHomeFile2.getPath(),"UTF-8");    
6 } catch (UnsupportedEncodingException e) {    
7      e.printStackTrace();    
8 }    
9 File dicHomeFile = new File(path);

以上步骤完成后,还需如下step:

PaodingMaker.java 在哪里?通过分析(by your brain and search engine),该java文件在 https://code.google.com/p/paoding/ 所在的项目中。

【即:

  Paoding Analysis摘要

    Paoding‘s Knives 中文分词具有极 高效率 和 高扩展性 。引入隐喻,采用完全的面向对象设计,构思先进。

    高效率:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字。

    采用基于 不限制个数 的词典文件对文章进行有效切分,使能够将对词汇分类定义。

    能够对未知的词汇进行合理解析

②如何替换项目中引入JAR file 里的PaodingMaker.class文件思路尝试如下,并成功。在上面googleCode的该项目托管download 该项目的sourceCode,可以针对性的只下载

PaodingMaker.java 文件【目录:paoding - Revision 154: /branches/paoding-for-lucene-2.4/src/net/paoding/analysis/knife】(advice:just try it!),

③直接将downloaded 的 PaodingMaker.java 拖到myeclipse里,或根据该文件package 语句进行创建 package,然后new 该文件,copy all content,如上:进行特定area Code 更改。
④Project-》clean,重新运行【restart server】,完美解决