lucene应用中出现异常:java.lang.OutOfMemoryError: Java heap space

技术人宝哥 2011-06-01 02:46:45
我们得应用又前台系统和后台管理系统两部分(应用lucene创建索引和关键字搜索,前台和后台中创建索引和关键字搜索的代码完全一样),现象描述:
如果创建索引和关键字搜索搜索都在前台系统中运行或者创建索引和搜索功能都在后台系统中运行没有问题,一切正常,但是,(a)当点击后台的创建索引,运行正常,这时,在点击前台的关键词搜索则就报异常 (b)点击前台的搜索(之前已经创建好索引),运行正常,这时,在后台点击创建索引。在(a)(b)这两种情况下都出现异常:
“java.lang.OutOfMemoryError: Java heap space” ,异常信息如下 :
2011-6-1 14:34:00 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet springmvc threw exception
java.lang.OutOfMemoryError: Java heap space
at org.wltea.analyzer.dic.DictSegment.fillSegment(DictSegment.java:167)
at org.wltea.analyzer.dic.DictSegment.fillSegment(DictSegment.java:180)
at org.wltea.analyzer.dic.DictSegment.fillSegment(DictSegment.java:180)
at org.wltea.analyzer.dic.DictSegment.fillSegment(DictSegment.java:180)
at org.wltea.analyzer.dic.DictSegment.fillSegment(DictSegment.java:156)
at org.wltea.analyzer.dic.Dictionary.loadMainDict(Dictionary.java:97)
at org.wltea.analyzer.dic.Dictionary.<init>(Dictionary.java:71)
at org.wltea.analyzer.dic.Dictionary.<clinit>(Dictionary.java:41)
at org.wltea.analyzer.cfg.Configuration.loadSegmenter(Configuration.java:110)
at org.wltea.analyzer.IKSegmentation.<init>(IKSegmentation.java:54)
at org.wltea.analyzer.lucene.IKTokenizer.<init>(IKTokenizer.java:44)
at org.wltea.analyzer.lucene.IKAnalyzer.tokenStream(IKAnalyzer.java:45)
at org.apache.lucene.analysis.Analyzer.reusableTokenStream(Analyzer.java:52)
at org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:126)
at org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProcessorPerThread.java:246)
at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:773)
at org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.java:751)
at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1928)
at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1902)
at com.fasdq.fangdake.index.IndexNews.buildDocument(IndexNews.java:210)
at com.fasdq.fangdake.index.IndexNews.createIndexIKAnalyzer(IndexNews.java:55)
at com.fasdq.fangdake.controller.LuceneController.createIndexNews(LuceneController.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
这个问题烦了我好几天了,弄不出来了,跪求牛人们帮忙一下!十分感谢了!
...全文
311 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
keven_2008 2011-06-03
  • 打赏
  • 举报
回复
Lucene本身的的字典需要占据一定的空间,好像是几十M。
这一部分空间是一直需要的。所以只能加大堆内存了。
kevin_520_kevin 2011-06-02
  • 打赏
  • 举报
回复
跟着大家学习了,呵呵...
UPC_思念 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 love_javaprogram 的回复:]

弟兄们,非常感谢你们的帮助,部署在linux的服务器上是没有问题的,现在大体知道原因了:两个应用同时部署在一个tomcat上 ,应该是两个应用跑窜了,呵呵~
[/Quote]

你这个问题肯定是java虚拟机的内存不够用才报此错误,一般可以加大虚拟机的内存
技术人宝哥 2011-06-02
  • 打赏
  • 举报
回复
弟兄们,非常感谢你们的帮助,部署在linux的服务器上是没有问题的,现在大体知道原因了:两个应用同时部署在一个tomcat上 ,应该是两个应用跑窜了,呵呵~
Spring89 2011-06-01
  • 打赏
  • 举报
回复
兄弟我的:"java.lang.OutOfMemoryError: Java heap space"暂时已解决,解决方法是:
window->preferences->MyEclipse....->Servers->Tomcat->Tomcat 6.X->JDK->Optional Java VM arguments下面的文本框里加上"-Xms128m -Xmx256m-Dcom.sun.management.jmxremote=true"然后Apply
当这里添加好后,在Launch->Create Launch Configuration->Arguments->VM arguments里就可看到刚添加的!
然后重启tomcat,OK了!具体内存大小视情况而定!那现在就不知道你的能不能按我的方法来了,祝你好运......
_斑驳旳青春 2011-06-01
  • 打赏
  • 举报
回复
java.lang.OutOfMemoryError: Java heap space

jvm虚拟机问题吧!本身的堆的空间不够?
zn85600301 2011-06-01
  • 打赏
  • 举报
回复
你是对什么文件创建索引?

还有你出现异常时 都是边建索引 边搜索的时候?

你建增量索引是怎么建的?
Spring89 2011-06-01
  • 打赏
  • 举报
回复
1楼完全不是解决这个问题的答案呀,呵呵......
我和你一样,也遇到了java.lang.OutOfMemoryError: Java heap space
我是在做多线程下载时出现的,你的还给出了哪个类哪行代码出现问题,我的没有!
解决方法:在tomcat/conf/catalina.bat里面改运行参数: -Xmx1024M
试下,可能对你有用,呵呵......祝你好运!!!
fkyq01 2011-06-01
  • 打赏
  • 举报
回复
观察一下调用
at com.fasdq.fangdake.index.IndexNews.buildDocument(IndexNews.java:210)
at com.fasdq.fangdake.index.IndexNews.createIndexIKAnalyzer(IndexNews.java:55)
at com.fasdq.fangdake.controller.LuceneController.createIndexNews(LuceneController.java:126)
之前和之后的内存量
xieshengjun2009 2011-06-01
  • 打赏
  • 举报
回复
重启服务,不行的话重装应用服务器,再不行检查代码有没有死循环!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧