2016-02-16 2 views
0

Я рад, что SDN4.1 теперь доступен, поскольку версия 4 была довольно неустойчивой. Я как можно скорее обновил свой проект, но у меня возникла странная проблема, возникающая, когда используется метод, использующий соединение с базой данных Neo4j. Я вижу такое исключение:Невозможно создать сессионный компонент после переключения на SDN4.1

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/tsg] threw exception [Request processing failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.getSession' defined in package.config.ApplicationConfig: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.neo4j.ogm.session.Session]: Factory method 'getSession' threw exception; nested exception is org.neo4j.ogm.exception.ServiceNotFoundException: org.neo4j.ogm.drivers.http.driver.HttpDriver] with root cause 
org.neo4j.ogm.exception.ServiceNotFoundException: org.neo4j.ogm.drivers.http.driver.HttpDriver 
    at org.neo4j.ogm.service.DriverService.load(DriverService.java:51) 
    at org.neo4j.ogm.service.DriverService.load(DriverService.java:63) 
    at org.neo4j.ogm.service.Components.loadDriver(Components.java:128) 
    at org.neo4j.ogm.service.Components.driver(Components.java:86) 
    at org.neo4j.ogm.session.SessionFactory.openSession(SessionFactory.java:79) 
    at org.springframework.data.neo4j.config.Neo4jConfiguration.getSession(Neo4jConfiguration.java:56) 
    at package.config.ApplicationConfig.getSession(ApplicationConfig.java:255) 
    at package.config.ApplicationConfig$$EnhancerBySpringCGLIB$$5bc6b7bf.CGLIB$getSession$15(<generated>) 

Я считаю, что это проблема конфигурации, так вот мой конфиг:

package package.config; 

import java.util.HashMap; 
import java.util.Map; 

import javax.sql.DataSource; 

import org.neo4j.ogm.config.Configuration; 
import org.apache.commons.dbcp2.BasicDataSource; 
import org.hibernate.jpa.HibernatePersistenceProvider; 
import org.neo4j.ogm.session.Session; 
import org.neo4j.ogm.session.SessionFactory; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.ComponentScan.Filter; 
import org.springframework.context.annotation.FilterType; 
import org.springframework.context.annotation.Import; 
import org.springframework.context.annotation.PropertySource; 
import org.springframework.context.annotation.Scope; 
import org.springframework.context.annotation.ScopedProxyMode; 
import org.springframework.core.annotation.Order; 
import org.springframework.core.env.Environment; 
import org.springframework.core.io.ClassPathResource; 
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; 
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 
import org.springframework.data.neo4j.config.Neo4jConfiguration; 
import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories; 
import org.springframework.data.neo4j.server.Neo4jServer; 
import org.springframework.data.neo4j.server.RemoteServer; 
import org.springframework.data.neo4j.transaction.Neo4jTransactionManager; 
import org.springframework.data.transaction.ChainedTransactionManager; 
import org.springframework.jdbc.datasource.init.DataSourceInitializer; 
import org.springframework.jdbc.datasource.init.DatabasePopulator; 
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; 
import org.springframework.orm.jpa.JpaTransactionManager; 
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; 
import org.springframework.orm.jpa.vendor.HibernateJpaDialect; 
import org.springframework.retry.annotation.EnableRetry; 
import org.springframework.transaction.PlatformTransactionManager; 
import org.springframework.transaction.annotation.EnableTransactionManagement; 
import org.springframework.transaction.jta.JtaTransactionManager; 
import org.springframework.web.multipart.commons.CommonsMultipartResolver; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 


import package.controller.DeviceController; 
import package.controller.PersonController; 

@org.springframework.context.annotation.Configuration 
@ComponentScan(basePackages = "package", excludeFilters = { 
     @Filter(type = FilterType.ASSIGNABLE_TYPE, value = { DeviceController.class, 
       PersonController.class }) }) 

@EnableTransactionManagement 
@PropertySource("classpath:application.properties") 
@EnableJpaRepositories(basePackages = "package.persistence") 
@EnableNeo4jRepositories("package.neo4jrepository") 
@Import({ WebSpringConfig.class }) 
public class ApplicationConfig extends Neo4jConfiguration { 

    @Autowired 
    Environment env; 

    public ApplicationConfig() { 
    } 
    @Bean 
    public Configuration getConfiguration() { 
     Configuration config = new Configuration(); 
     config 
      .driverConfiguration() 
      .setDriverClassName 
      ("org.neo4j.ogm.drivers.http.driver.HttpDriver").setURI("http://xxx:[email protected]:7474"); 
     return config; 
    } 

    @Bean 
    public DataSource dataSource() { 

     BasicDataSource dataSource = new BasicDataSource(); 
     dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
     dataSource.setUrl(env.getProperty("database.url")); 
     dataSource.setUsername(env.getProperty("database.user")); 
     dataSource.setPassword(env.getProperty("database.password")); 
     return dataSource; 
    } 

    @Bean 
    public DataSourceInitializer initializeDatabase() { 
     DataSourceInitializer dbInitializer = new DataSourceInitializer(); 
     dbInitializer.setDataSource(dataSource()); 
     dbInitializer.setDatabasePopulator(databasePopulator()); 
     dbInitializer.setEnabled(true); 
     return dbInitializer; 
    } 

    @Bean 
    public DatabasePopulator databasePopulator() { 
     ResourceDatabasePopulator resDatabasePopulator = new ResourceDatabasePopulator(); 
     resDatabasePopulator.setContinueOnError(true); 
     resDatabasePopulator.addScript(new ClassPathResource("importagreements.sql")); 
     resDatabasePopulator.setSqlScriptEncoding("UTF-8"); 
     return resDatabasePopulator; 
    } 

    @Bean 
    @Autowired 
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) { 
     LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean(); 
     entityManagerFactory.setDataSource(dataSource); 
     entityManagerFactory.setPackagesToScan(new String[] { "package.persistence.domain" }); 
     entityManagerFactory.setJpaDialect(new HibernateJpaDialect()); 
     Map<String, String> jpaProperties = new HashMap<String, String>(); 
     jpaProperties.put("hibernate.connection.charSet", "UTF-8"); 
     jpaProperties.put("spring.jpa.hibernate.ddl-auto", "update"); 
     jpaProperties.put("hibernate.ejb.naming_strategy", "org.hibernate.cfg.EJB3NamingStrategy"); 
     jpaProperties.put("hibernate.bytecode.provider", "javassist"); 
     jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect"); 
     jpaProperties.put("hibernate.hbm2ddl.auto", "update"); 
     jpaProperties.put("hibernate.order_inserts", "true"); 
     jpaProperties.put("hibernate.jdbc.batch_size", "50"); 

     entityManagerFactory.setJpaPropertyMap(jpaProperties); 
     entityManagerFactory.setPersistenceProvider(new HibernatePersistenceProvider()); 
     return entityManagerFactory; 
    } 
    @Bean(name = "transactionManager") 
    @Autowired 
    public PlatformTransactionManager neo4jTransactionManager(Neo4jTransactionManager neoTransactionManager, 
      JpaTransactionManager mysqlTransactioNmanager) throws Exception { 
     return new ChainedTransactionManager(mysqlTransactioNmanager, neoTransactionManager); 
    } 

    @Bean(name = "neo4jTransactionManager") 
    @Autowired 
    public Neo4jTransactionManager neo4jTransactionManager(Session session) throws Exception { 
     return new Neo4jTransactionManager(session); 
    } 

    @Bean(name = "mysqlTransactionManager") 
    @Autowired 
    public JpaTransactionManager mysqlTransactionManager(LocalContainerEntityManagerFactoryBean entityManagerFactory) 
      throws Exception { 
     JpaTransactionManager mysqlTransactioNmanager = new JpaTransactionManager(entityManagerFactory.getObject()); 
     return mysqlTransactioNmanager; 
    } 

    @Bean 
    public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { 
     return new PersistenceExceptionTranslationPostProcessor(); 
    } 

    @Bean(name = "multipartResolver") 
    public CommonsMultipartResolver commonsMultipartResolver() { 
     CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(); 
     commonsMultipartResolver.setDefaultEncoding("utf-8"); 
     commonsMultipartResolver.setMaxUploadSize(50000000); 
     return commonsMultipartResolver; 
    } 

    @Override 
    public SessionFactory getSessionFactory() { 
     return new SessionFactory(getConfiguration(),"package.domain", "package.relation", "package.util", 
       "package.httpBody"); 

    } 

    @Bean 
    @Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS) 
    public Session getSession() throws Exception { 
     return super.getSession(); 
    } 

} 

Вот мой POM:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>project</groupId> 
    <artifactId>tsg</artifactId> 
    <name>tsg</name> 
    <packaging>war</packaging> 
    <version>1.0.0-BUILD-SNAPSHOT</version> 
    <properties> 

     <!-- Generic properties --> 
     <java-version>1.7</java-version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 

     <javax.inject.version>1</javax.inject.version> 
     <cglib.version>2.2.2</cglib.version> 

     <!-- Web --> 
     <javax.servlet.version>2.5</javax.servlet.version> 
     <javax.servlet.jsp.version>2.1</javax.servlet.jsp.version> 
     <javax.servlet.jstl.version>1.2</javax.servlet.jstl.version> 
     <jersey.version>1.8</jersey.version> 
     <com.google.code.gson.version>2.2.4</com.google.code.gson.version> 
     <javax.ws.rs-api.version>2.0</javax.ws.rs-api.version> 

     <!-- Spring --> 
     <org.springframework-version>4.1.9.RELEASE</org.springframework-version> 
     <spring-security.version>3.2.4.RELEASE</spring-security.version> 
     <spring-data-commons.version>1.12.0.M1</spring-data-commons.version> 
     <spring-data-neo4j.version>4.1.0.M1</spring-data-neo4j.version> 
     <spring-data-jpa.version>1.9.2.RELEASE</spring-data-jpa.version> 

     <!-- Aspects --> 
     <org.aspectj-version>1.7.4</org.aspectj-version> 

     <!-- Neo4j --> 
     <org.neo4j.app.version>2.0.3</org.neo4j.app.version> 
     <neo4j.ogm.version>2.0.0-M2</neo4j.ogm.version> 

     <!-- Hibernate/JPA --> 
     <org.hibernate.version>4.3.11.Final</org.hibernate.version> 
     <org.hibernate-validator.version>5.1.1.Final</org.hibernate-validator.version> 

     <!-- MySQL --> 
     <mysql-connector-java.version>5.1.34</mysql-connector-java.version> 

     <!-- Logging --> 
     <org.slf4j-version>1.6.6</org.slf4j-version> 
     <log4j.version>1.2.15</log4j.version> 

     <!-- Testing --> 
     <junit.version>4.7</junit.version> 

     <!-- Maven plugin --> 
     <maven-eclipse-plugin.version>2.9</maven-eclipse-plugin.version> 
     <maven-compiler-plugin.version>2.5.1</maven-compiler-plugin.version> 
     <exec-maven-plugin.version>1.2.1</exec-maven-plugin.version> 

     <!-- Smack --> 
     <smack.version>4.1.0</smack.version> 

    </properties> 

    <repositories> 
     <repository> 
      <id>spring-snapshots</id> 
      <name>Spring Snapshots</name> 
      <url>http://repo.spring.io/snapshot</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 
    <repository> 
     <id>spring-maven-snapshot</id> 
     <snapshots><enabled>true</enabled></snapshots> 
     <name>Springframework Maven MILESTONE Repository</name> 
     <url>http://maven.springframework.org/milestone</url> 
    </repository> 

     <repository> 
      <id>jcenter-snapshots</id> 
      <name>jcenter</name> 
      <url>https://jcenter.bintray.com/</url> 
     </repository> 

     <repository> 
      <id>neo4j-release-repository</id> 
      <name>Neo4j Maven 2 release repository</name> 
      <url>http://m2.neo4j.org/content/repositories/releases/</url> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 

    </repositories> 

    <dependencies> 
     <!-- Apache Commons FileUpload --> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.3.1</version> 
     </dependency> 

     <!-- Apache Commons IO --> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.4</version> 
     </dependency> 
     <!-- dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> 
      <version>1.1.0.Final</version> </dependency --> 

     <!-- Smack --> 
     <dependency> 
      <groupId>org.igniterealtime.smack</groupId> 
      <artifactId>smack-java7</artifactId> 
      <version>${smack.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.igniterealtime.smack</groupId> 
      <artifactId>smack-tcp</artifactId> 
      <version>${smack.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.igniterealtime.smack</groupId> 
      <artifactId>smack-im</artifactId> 
      <version>${smack.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.igniterealtime.smack</groupId> 
      <artifactId>smack-extensions</artifactId> 
      <version>${smack.version}</version> 
     </dependency> 

     <!-- Spring --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${org.springframework-version}</version> 
      <exclusions> 
       <!-- Exclude Commons Logging in favor of SLF4j --> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${org.springframework-version}</version> 
     </dependency> 


     <!-- Spring Data --> 
     <!-- <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-commons</artifactId> 
      <version>${spring-data-commons.version}</version> </dependency> --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-neo4j</artifactId> 
      <version>${spring-data-neo4j.version}</version> 
      <exclusions> 
       <exclusion> 
        <artifactId>jersey-server</artifactId> 
        <groupId>com.sun.jersey</groupId> 
       </exclusion> 
       <exclusion> 
        <artifactId>jersey-servlet</artifactId> 
        <groupId>com.sun.jersey</groupId> 
       </exclusion> 
       <exclusion> 
        <artifactId>jersey-multipart</artifactId> 
        <groupId>com.sun.jersey.contribs</groupId> 
       </exclusion> 

      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.retry</groupId> 
      <artifactId>spring-retry</artifactId> 
      <version>1.1.2.RELEASE</version> 
     </dependency> 

     <!-- Spring Security --> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>${spring-security.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-core</artifactId> 
      <version>${spring-security.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-config</artifactId> 
      <version>${spring-security.version}</version> 
     </dependency> 

     <!-- AspectJ --> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${org.aspectj-version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjweaver</artifactId> 
      <version>1.8.5</version> 
     </dependency> 

     <!-- Logging --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${org.slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <!-- <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${org.slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency>--> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>${log4j.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.mail</groupId> 
        <artifactId>mail</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>javax.jms</groupId> 
        <artifactId>jms</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jdmk</groupId> 
        <artifactId>jmxtools</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jmx</groupId> 
        <artifactId>jmxri</artifactId> 
       </exclusion> 
      </exclusions> 
      <scope>runtime</scope> 
     </dependency> 

     <!-- @Inject --> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>${javax.inject.version}</version> 
     </dependency> 

     <!-- Servlet --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>${javax.servlet.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>${javax.servlet.jsp.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>${javax.servlet.jstl.version}</version> 
     </dependency> 

     <!-- Test --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>${junit.version}</version> 
      <scope>test</scope> 
     </dependency> 


     <!-- ******* JPA/Hibernate ******** --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${org.hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.1-api</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>${org.hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-jpa</artifactId> 
      <version>${spring-data-jpa.version}</version> 
     </dependency> 



     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>${org.hibernate-validator.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>${mysql-connector-java.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-dbcp2</artifactId> 
      <version>2.0</version> 
     </dependency> 
     <!-- additional libraries --> 
     <!-- <dependency> 
      <groupId>cglib</groupId> 
      <artifactId>cglib</artifactId> 
      <version>${cglib.version}</version> 
     </dependency> --> 

     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>${com.google.code.gson.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.activemq</groupId> 
      <artifactId>activemq-client</artifactId> 
      <version>5.9.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.activemq</groupId> 
      <artifactId>activemq-client</artifactId> 
      <version>5.9.1</version> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-core</artifactId> 
      <version>2.6.3</version> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.6.3</version> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml</groupId> 
      <artifactId>classmate</artifactId> 
      <version>1.3.1</version> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.dataformat</groupId> 
      <artifactId>jackson-dataformat-xml</artifactId> 
      <version>2.6.3</version> 
     </dependency> 

     <dependency> 
      <groupId>joda-time</groupId> 
      <artifactId>joda-time</artifactId> 
      <version>2.9</version> 
     </dependency> 


     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger2</artifactId> 
      <version>2.1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger-ui</artifactId> 
      <version>2.1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.3.5</version> 
     </dependency> 



    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <version>${maven-eclipse-plugin.version}</version> 
       <configuration> 
        <additionalProjectnatures> 
         <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
        </additionalProjectnatures> 
        <additionalBuildcommands> 
         <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
        </additionalBuildcommands> 
        <downloadSources>true</downloadSources> 
        <downloadJavadocs>true</downloadJavadocs> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${maven-compiler-plugin.version}</version> 
       <configuration> 
        <source>${java-version}</source> 
        <target>${java-version}</target> 
        <compilerArgument>-Xlint:all</compilerArgument> 
        <showWarnings>true</showWarnings> 
        <showDeprecation>true</showDeprecation> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>${exec-maven-plugin.version}</version> 
       <configuration> 
        <mainClass>org.test.int1.Main</mainClass> 
       </configuration> 
      </plugin> 
     </plugins> 
     <resources> 
      <!-- Placeholders that are found from the files located in the configured 
       resource directories are replaced with the property values found from the 
       profile specific configuration file. --> 
      <resource> 
       <filtering>true</filtering> 
       <directory>src/main/resources</directory> 
      </resource> 
     </resources> 
     <filters> 
      <!-- Ensures that the config.properties file is always loaded from the 
       configuration directory of the active Maven profile. --> 
      <filter>src/main/resources/profiles/${build.profile.id}/config.properties</filter> 
     </filters> 

    </build> 

</project> 

Dependency Hierarchy

ответ

2

Конфигурация выглядит правильно. У меня была такая же проблема в выходные. Я думаю, что ServiceNotFoundException означает, что вы, вероятно, все еще импортируете 1.x.x версию neo4j-ogm jar (запишите свой pom config?). Вы должны явно удалить его из своего пом.

<!-- <dependency> 
      <groupId>org.neo4j</groupId> 
      <artifactId>neo4j-ogm</artifactId> 
      <version>${neo4j.ogm.version}</version> 
     </dependency> 
--> 

Убедитесь, что вы приносите в новых 2.x.x Neo4j-OGM -api Neo4j-ОГМ -core банки. Также убедитесь, что вы используете пружинный генератор 1.12.0.M1.

Вот как выглядит иерархия зависимостей jar-data-neo4j-4.1.0.M1 (и работает на 100%).

enter image description here

Этого пример П (не Neo4j конкретных) помог мне встать и бежать.

https://github.com/spring-projects/spring-data-examples/blob/master/pom.xml#L35

также смотрите:

https://spring.io/blog/2016/02/12/spring-data-release-train-hopper-m1-released

UPDATE: если вы используете пружинные загрузки что-то вроде этого (голого минимального П) вы должен получить и работают. Задавая spring-data-releasetrain.version со значением Hopper-M1 в вашей пом Properites весна загрузки Maven плагин будет автоматически валить все правильные depedencies для весенне-данных Neo4j-4.1.0.M1

<!-- Inherit defaults from Spring Boot --> 
    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.2.RELEASE</version> 
    </parent> 

<! --- omitted project info --> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
     <spring-data-releasetrain.version>Hopper-M1</spring-data-releasetrain.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-neo4j</artifactId> 
     </dependency> 

    </dependencies> 

    <repositories> 
     <repository> 
      <id>spring-libs-snapshot</id> 
      <url>https://repo.spring.io/libs-snapshot</url> 
     </repository> 
    </repositories> 

    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-libs-snapshot</id> 
      <url>https://repo.spring.io/libs-snapshot</url> 
     </pluginRepository> 
    </pluginRepositories> 
+0

Я не с помощью загрузки пружины. Я попытался установить Spring-data-commons в 1.12.0.M1, но это не поможет. Я обновил свой вопрос с помощью POM и иерархии зависимостей для spring-data-neo4j. Странно то, что когда я смотрю на Maven Dependencies, я вижу, что есть org.neo4j.ogm.drivers.http.driver.HttpDriver. – Cob

+0

@ Хорошее исключение, которое вы получаете, по существу является исключением ClassNotFoundException. Он не может найти класс «HttpDriver». (который говорит мне, что у вас возникают проблемы с classpath), который проистекает из отсутствия или импорта неправильных банок. Убедитесь, что вы очищаете свой проект. – Selwyn

+0

@Cob, если я должен был догадаться, я думаю, что spring-data'-jpa' понижает некоторые баночки для вас, что нужны весенние данные-'neo4j' – Selwyn