问题:
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】,完美解决