Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Data x Neo4J嵌入式配置_Neo4j_Junit4_Spring Data_Spring Annotations - Fatal编程技术网

Spring Data x Neo4J嵌入式配置

Spring Data x Neo4J嵌入式配置,neo4j,junit4,spring-data,spring-annotations,Neo4j,Junit4,Spring Data,Spring Annotations,我的应用程序只是测试环境是否基本正常工作。因此,我设置了一个对应于“Hello Worlds”示例的testclass,该示例可以在SpringSource的gitHub存储库中找到。Neo4j作为静态web应用程序包含并运行嵌入式应用程序。Webinterface不是必需的。 问题是,当我开始通过Junit运行测试用例时,会出现如下错误: org.springframework.beans.factory.BeanCreationException: Error creating bean w

我的应用程序只是测试环境是否基本正常工作。因此,我设置了一个对应于“Hello Worlds”示例的testclass,该示例可以在SpringSource的gitHub存储库中找到。Neo4j作为静态web应用程序包含并运行嵌入式应用程序。Webinterface不是必需的。 问题是,当我开始通过Junit运行测试用例时,会出现如下错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'GalaxyServiceTests': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private GalaxyService GalaxyServiceTests.galaxyService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [GalaxyService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
我的应用程序配置如下

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:neo4j="http://www.springframework.org/schema/data/neo4j"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/data/neo4j
            http://www.springframework.org/schema/data/neo4j/spring-neo4j.xsd">
<context:annotation-config/>
<bean id="graphDatabaseService" class="org.neo4j.kernel.EmbeddedGraphDatabase"
    destroy-method="shutdown">
    <constructor-arg index="0" value="target/graph.db" />
    <constructor-arg index="1">
        <map><entry key="enable_remote_shell" value="true"/></map>
    </constructor-arg>
</bean>
<!-- <bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper"  -->
<!--    init-method="start" destroy-method="stop"> -->
<!--    <constructor-arg ref="graphDatabaseService"/> -->
<!-- </bean> -->
</beans>
我的pom看起来像这样:

<dependencies>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.0.4.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>3.0.7.RELEASE</version>
    <scope>test</scope>
    <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
</dependency>
        <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-neo4j</artifactId>
            <version>2.2.0.BUILD-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>3.2.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.neo4j.app</groupId>
            <artifactId>neo4j-server</artifactId>
            <version>2.0.0-M02</version>
            <classifier>static-web</classifier>
        </dependency>
EDIT2 我已在上发布了存储库

EDIT3 路径为application-context.xml的内容出错。我用
@ContextConfiguration(locations={“classpath:/META-INF/application context.xml})修复了这个问题

我正处在一个例外的时刻

找不到依赖项类型为[start.GalaxyService]的合格bean: 至少需要1个符合以下条件的bean:autowire候选 这种依赖

每次运行JUnit4测试时都会抛出

EDIT4 我昨天设法使它工作起来了。应用程序上下文的某些部分相当混乱

<context:spring-configured/>
<context:annotation-config/>
<context:component-scan base-package="components"/>
<neo4j:config graphDatabaseService="graphDatabaseService"/>
<neo4j:config storeDirectory="target/graph.db"/>
<neo4j:repositories base-package="Repositories"/>

这是我的工作应用程序上下文的一个片段。 此外,我没有将@Service附加到GalaxyService类


现在一切都按计划进行了。这可能会帮助面临同样问题的人。

您是否在github上的某个地方有您的项目可以查看?我一到家就会添加我的存储库。目前正在工作
21:11:48.196 [main] ERROR o.s.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@7e26f5a7] to prepare test instance [GalaxyServiceTests@64d74895]
java.lang.IllegalStateException: Failed to load ApplicationContext
<context:spring-configured/>
<context:annotation-config/>
<context:component-scan base-package="components"/>
<neo4j:config graphDatabaseService="graphDatabaseService"/>
<neo4j:config storeDirectory="target/graph.db"/>
<neo4j:repositories base-package="Repositories"/>