【问题标题】:Issue with Spring Data Neo4j migration from 2.3.3 to 3.0.0 RC1Spring Data Neo4j 从 2.3.3 迁移到 3.0.0 RC1 的问题
【发布时间】:2014-02-14 15:57:13
【问题描述】:

我正在尝试将 SDN 项目从当前稳定版本 (2.3.3) 迁移到支持 Neo4j 2.0 的 3.0.0 RC1 版本。 该项目是部署在 Glassfish 3.1.2.2 服务器上的 WAR,并使用通过 @Autowired Neo4jOperations 对象和 GraphRepository<T> 对象访问 Neo4j 的 EJB。 使用 SpringBeanAutowiringInterceptor 拦截器注释支持自动连接。 SDN配置由spring xml配置文件中的以下几行给出:

<context:annotation-config/>
<context:spring-configured/>
<bean id="graphDatabaseService" class="org.neo4j.kernel.EmbeddedGraphDatabase" destroy-method="shutdown">
    <constructor-arg index="0" value="my.db"/>
</bean>
<neo4j:repositories base-package="com.my.neo4j.repository"/>
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>
<neo4j:config graphDatabaseService="graphDatabaseService"/>

使用 2.3.3 SDN 版本时一切正常,但不幸的是使用 3.0.0 RC1 在部署时出现以下错误:

javax.enterprise.inject.UnsatisfiedResolutionException: 无法 解析一个 bean 'org.springframework.data.neo4j.support.mapping.Neo4jMappingContext' 带有限定符 [@javax.enterprise.inject.Any(), @javax.enterprise.inject.Default()]。 在 org.springframework.data.neo4j.repository.cdi.Neo4jCdiRepositoryExtension.createRepositoryBean(Neo4jCdiRepositoryExtension.java:107) 在 org.springframework.data.neo4j.repository.cdi.Neo4jCdiRepositoryExtension.afterBeanDiscovery(Neo4jCdiRepositoryExtension.java:82) ...

我真的不知道我的项目出了什么问题,我会感谢任何可以帮助我解决这个问题的人。

更新:与 3.0.0.RELEASE 相同的问题。

【问题讨论】:

  • 有什么解决办法吗?如果我引入一个扩展“GraphRepository”的存储库,我也会遇到同样的问题。
  • @MarcusSchultö 已在当前版本 3.2.0 中解决。

标签: neo4j spring-data-neo4j


【解决方案1】:

EmbeddedGraphDatabase 不再有构造函数了。

您必须改用我添加的GraphDatabaseServiceFactoryBean

<bean id="graphDatabaseService" class="org.springframework.data.neo4j.support.GraphDatabaseServiceFactoryBean"
        destroy-method="shutdown" scope="singleton">
    <constructor-arg value="target/config-test"/>
    <constructor-arg>
        <map>
            <entry key="allow_store_upgrade" value="true"/>
        </map>
    </constructor-arg>
</bean>

【讨论】:

  • 感谢@Michael,我刚刚尝试过,不幸的是我仍然遇到完全相同的错误。我的印象是,在我的配置中,SDN 期望使用 Java EE CDI 在某处注入 graphDatabaseService bean。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多