【问题标题】:Spring-data-neo4j-Neoclipse-Lucene corrupt index ExceptionSpring-data-neo4j-Neoclipse-Lucene 损坏索引异常
【发布时间】:2013-08-26 17:29:56
【问题描述】:

我已经使用 Spring-data-neo4j 配置了我的应用程序,我可以在其中成功地持久化、创建关系等。

一旦我持久化数据并停止我的应用程序,然后我想可视化我在 NEOCLIPSE 中创建的图表。

我也可以在 NEOCLIPSE 中成功看到图表。

我遇到的唯一问题是.. 一旦我关闭 Neoclipse 中的连接,然后在网页上将我的应用程序重新运行到 listAllSavedEntities,我就会收到此错误:

`SEVERE: Servlet.service() for servlet [spring] in context with path [/sample] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: org.apache.lucene.index.CorruptIndexException: unrecognized format -3 in file "_0.fnm"] with root cause
org.apache.lucene.index.CorruptIndexException: unrecognized format -3 in file "_0.fnm"
    at org.apache.lucene.index.FieldInfos.read(FieldInfos.java:349)
    at org.apache.lucene.index.FieldInfos.<init>(FieldInfos.java:71)
    at org.apache.lucene.index.IndexWriter.getFieldInfos(IndexWriter.java:1197)
    at org.apache.lucene.index.IndexWriter.getCurrentFieldInfos(IndexWriter.java:1213)
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1149)
    at org.neo4j.index.impl.lucene.LuceneDataSource.getIndexWriter(LuceneDataSource.java:602)
    at org.neo4j.index.impl.lucene.LuceneDataSource.getIndexSearcher(LuceneDataSource.java:499)
    at org.neo4j.index.impl.lucene.LuceneIndex.query(LuceneIndex.java:248)
    at org.neo4j.index.impl.lucene.LuceneIndex.get(LuceneIndex.java:187)
    at org.springframework.data.neo4j.support.typerepresentation.AbstractIndexingTypeRepresentationStrategy.findAllRelBacked(AbstractIndexingTypeRepresentationStrategy.java:111)
    at org.springframework.data.neo4j.support.typerepresentation.AbstractIndexingTypeRepresentationStrategy.findAll(AbstractIndexingTypeRepresentationStrategy.java:82)
    at org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategies.findAll(TypeRepresentationStrategies.java:80)
    at org.springframework.data.neo4j.support.Neo4jTemplate.findAll(Neo4jTemplate.java:166)
    at org.springframework.data.neo4j.repository.AbstractGraphRepository.findAll(AbstractGraphRepository.java:131)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:322)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:307)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at com.sun.proxy.$Proxy18.findAll(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
    at com.sun.proxy.$Proxy21.findAll(Unknown Source)
    at com.adaranet.controller.DeviceController.listAllDevices(DeviceController.java:60)
    at com.adaranet.controller.DeviceController$$FastClassByCGLIB$$3ee50553.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
    at com.adaranet.controller.DeviceController$$EnhancerByCGLIB$$52cdcf0f.listAllDevices(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)`

我只是关闭了Neoclipse 中的连接,然后尝试list 退出我的持久实体。仅此而已。

我不知道这里出了什么问题 :( :(

任何帮助将不胜感激。 谢谢。

【问题讨论】:

    标签: exception lucene spring-data spring-data-neo4j corrupt


    【解决方案1】:

    你的 neoclipse 使用什么 neo4j 内核版本,你的应用程序是哪一个?会不会是版本不匹配?也许 neoclipse 将数据目录内容升级到引擎盖下的较新版本。这可能是您的应用程序中出现 unrecognized format -3 错误消息的原因。

    【讨论】:

    • 我明白了.. 我应该如何检查neoclipe's 内核版本? &lt;dependency&gt; &lt;groupId&gt;org.neo4j&lt;/groupId&gt; &lt;artifactId&gt;neo4j&lt;/artifactId&gt; &lt;version&gt;1.6.M02&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.data&lt;/groupId&gt; &lt;artifactId&gt;spring-data-neo4j&lt;/artifactId&gt; &lt;version&gt;2.0.0.RELEASE&lt;/version&gt; &lt;/dependency&gt; 这些是我的 pom 文件中的 neo4j 配置依赖项。这是我在我的 neoclipse.ini -startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502 中找到的
    • 看了一下github.com/neo4j-contrib/neoclipse/downloads的下载包,neoclipse的最新稳定版好像是1.8。你安装了那个?它的版本号似乎与neo4j的版本号相对应。根据您的依赖关系,您使用的是较旧的 neo4j 1.6.M02。
    • 如果你不确定你安装的是哪个neoclipse版本:打开neoclipse,进入菜单项关于Neoclipse,然后安装详情,然后配置。在该列表中,您应该看到如下内容:Id: org.neo4j.neoclipse, Version: 1.8.0, Location: initial@reference:file:plugins/org.neo4j.neoclipse_1.8.0.jar 我建议您将应用程序依赖项更新到 neo4j 版本 1.8,或者如果由于某种原因不允许升级应用程序依赖项,则使用较旧的 neoclipse 版本 1.6。跨度>
    • 谢谢 h3nrik.. 我会调查一下,如果错误仍然存​​在,我会回复您。感谢您的回复。
    • 感谢 h3nrik,它似乎正在工作:) 我已经更新了 Spring 依赖项和 neo4j 的。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多