2016-08-31 6 views
1

Я использую пример от SDN4 Cineasts в качестве отправной точки для создания собственного приложения поверх SDN и Neo4J. Я хочу использовать драйвер Bolt, предполагая, что ему не нужно анализировать HTTP-выход и, следовательно, быстрее и безопаснее. (Пожалуйста, исправьте меня, если я ошибаюсь по этому вопросу.) Шаблон из Neo github использует драйвер HTTP, и я не могу получить пример для компиляции или развертывания с помощью драйвера Bolt. (Я строй войны, а не банка, так что если это делает никакой разницы, пожалуйста, скажите.)Данные весны + Neo4J + Болт не работает

Может кто-то пожалуйста, либо подтвердить, что добавление этой зависимости:

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

потерпит неудачу, потому что в зависимости не может быть разрешено, и что использование любого номера версии выше 2.0.0 не будет развертываться из-за версии hell; или, альтернативно, укажите ошибки (-ы) моих способов? Если вы сделаете это, вы можете также редактировать ogm.properties читать, как это (заменить <your-username> и <your-password> в зависимости от обстоятельств):

driver=org.neo4j.ogm.drivers.bolt.driver.BoltDriver 
URI=bolt://localhost 
username=<your-username> 
password=<your-password> 
encryption.level=NONE 

Спасибо,

Stephan

Обновление: По предложению по Luanne , Я добавил следующие зависимости/свойства:

<sdn.version>4.1.2.RELEASE</sdn.version> 

<dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-ogm-bolt-driver</artifactId> 
    <version>2.0.4</version> 
</dependency> 

но получил следующее сообщение об ошибке на развертывание:

01-Sep-2016 10:04:45.689 INFO [localhost-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /Users/neut/Documents/Utils/apache-tomcat-8.5.4/webapps/works-1.0-SNAPSHOT.war 
2016-09-01 10:04:51,365 ERROR pringframework.web.context.ContextLoader: 358 - Context initialization failed 
java.lang.NoClassDefFoundError: org/springframework/aop/framework/autoproxy/AbstractBeanFactoryAwareAdvisingPostProcessor 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2251) 
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:810) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1118) 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2688) 
    at java.lang.Class.getDeclaredMethods(Class.java:1962) 
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:609) 
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:521) 
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:534) 
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:507) 
    at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:567) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:683) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:627) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:597) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1445) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:445) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:415) 
    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:101) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4716) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5178) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952) 
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1823) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ClassNotFoundException: org.springframework.aop.framework.autoproxy.AbstractBeanFactoryAwareAdvisingPostProcessor 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1284) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1118) 
    ... 40 common frames omitted 
01-Sep-2016 10:04:51.372 SEVERE [localhost-startStop-2] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file 
01-Sep-2016 10:04:51.373 SEVERE [localhost-startStop-2] org.apache.catalina.core.StandardContext.startInternal Context [/works-1.0-SNAPSHOT] startup failed due to previous errors 
2016-09-01 10:04:51,392 WARN context.support.XmlWebApplicationContext: 978 - Exception thrown from LifecycleProcessor on context close 
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Thu Sep 01 10:04:50 CEST 2016]; root of context hierarchy 
    at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:415) 
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:975) 
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:934) 
    at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:583) 
    at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:116) 
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4763) 
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5400) 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:229) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952) 
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1823) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
01-Sep-2016 10:04:51.401 INFO [localhost-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /Users/neut/Documents/Utils/apache-tomcat-8.5.4/webapps/works-1.0-SNAPSHOT.war has finished in 5,711 ms 

Для полноты, вот моя полная pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns="http://maven.apache.org/POM/4.0.0" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>de.artdecode.works</groupId> 
    <artifactId>works</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>Works database</name> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <spring.version>4.2.4.RELEASE</spring.version> 
     <spring.commons.version>1.12.0.BUILD-SNAPSHOT</spring.commons.version> 
     <spring.security.version>4.0.3.RELEASE</spring.security.version> 
     <neo4j.version>2.3.2</neo4j.version> 
     <!-- <sdn.version>4.1.0.M1</sdn.version> --> 
     <sdn.version>4.1.2.RELEASE</sdn.version> 
     <neo4j.ogm.version>2.0.4</neo4j.ogm.version> 
    </properties> 

    <dependencies> 
     <!-- J2EE --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 


     <!-- Spring --> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aspects</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <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-config</artifactId> 
      <version>${spring.security.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-neo4j</artifactId> 
      <version>${sdn.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>opensymphony</groupId> 
      <artifactId>sitemesh</artifactId> 
      <version>2.4.2</version> 
     </dependency> 

     <!-- Neo4j --> 
     <dependency> 
      <groupId>org.neo4j.app</groupId> 
      <artifactId>neo4j-server</artifactId> 
      <version>${neo4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.neo4j</groupId> 
      <artifactId>neo4j-ogm-bolt-driver</artifactId> 
      <version>2.0.4</version> 
     </dependency> 

     <!-- Tests --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${spring.version}</version> 
      <scope>test</scope> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

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

     <dependency> 
      <groupId>org.neo4j.test</groupId> 
      <artifactId>neo4j-harness</artifactId> 
      <version>${neo4j.version}</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.hamcrest</groupId> 
      <artifactId>hamcrest-library</artifactId> 
      <version>1.3</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-neo4j</artifactId> 
      <version>${sdn.version}</version> 
      <type>test-jar</type> 
     </dependency> 

     <!-- Others --> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.3.3</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.4</version> 
     </dependency> 

     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.21</version> 
     </dependency> 

     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>1.1.7</version> 
     </dependency> 

    </dependencies> 


    <repositories> 
     <repository> 
      <id>spring-libs-snapshot</id> 
      <name>Spring</name> 
      <url>http://repo.spring.io/libs-snapshot</url> 
     </repository> 

     <repository> 
      <id>spring-snapshots</id> 
      <url>http://repo.spring.io/snapshot</url> 
      <snapshots><enabled>true</enabled></snapshots> 
     </repository> 

     <repository> 
      <id>spring-milestones</id> 
      <url>http://repo.spring.io/milestone</url> 
     </repository> 

     <repository> 
      <id>neo4j</id> 
      <url>http://m2.neo4j.org/content/repositories/releases</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </repository> 

    </repositories> 
    <pluginRepositories> 

     <pluginRepository> 
      <id>spring-snapshots</id> 
      <url>http://repo.spring.io/snapshot</url> 
     </pluginRepository> 

     <pluginRepository> 
      <id>spring-milestones</id> 
      <url>http://repo.spring.io/milestone</url> 
     </pluginRepository> 

</pluginRepositories> 



    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
        <encoding>${project.build.sourceEncoding}</encoding> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>7.6.5.v20120716</version> 
       <configuration> 
        <scanIntervalSeconds>10</scanIntervalSeconds> 
        <stopKey>foo</stopKey> 
        <stopPort>9999</stopPort> 
        <jvmArgs></jvmArgs> 
        <systemProperties> 
         <systemProperty> 
          <name>username</name> 
          <value>neo4j</value> 
         </systemProperty> 
         <systemProperty> 
          <name>password</name> 
          <value>neo</value> 
         </systemProperty> 
        </systemProperties> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Update 2: Вот мой Neo4jConfiguration класс:

/* 
* Copyright [2011-2016] "Neo Technology" 
* 
* Licensed under the Apache License, Version 2.0 (the "License"); 
* you may not use this file except in compliance with the License. 
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
* 
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 
* 
*/ 
package de.artdecode.works; 

import org.neo4j.ogm.session.Session; 
import org.neo4j.ogm.session.SessionFactory; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.annotation.Scope; 
import org.springframework.context.annotation.ScopedProxyMode; 
import org.springframework.data.neo4j.config.Neo4jConfiguration; 
import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories; 
import org.springframework.transaction.annotation.EnableTransactionManagement; 

@Configuration 
@EnableNeo4jRepositories("de.artdecode.works.repository") 
@EnableTransactionManagement 
@ComponentScan("de.artdecode.works.domain") 
public class Application extends Neo4jConfiguration { 

    public static final int NEO4J_PORT = 7474; 

    @Override 
    @Bean 
    public SessionFactory getSessionFactory() { 
    return new SessionFactory("de.artdecode.works.domain"); 
    } 


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

Как выглядит ваш класс Neo4jConfiguration? – Luanne

+0

Просто разместил его под «Обновление 2». –

ответ

3

Предполагая, что вы с использованием версии 4.1.2

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-neo4j</artifactId> 
    <version>4.1.2.RELEASE</version> 
</dependency> 

Затем, добавив зависимость водителя Болта

<dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-ogm-bolt-driver</artifactId> 
    <version>2.0.3</version> 
</dependency> 

не должен производить какие-либо конфликты версий.

Вот пример минимального ogm.properties файла для Bolt:

driver=org.neo4j.ogm.drivers.bolt.driver.BoltDriver 
URI=bolt://neo4j:[email protected] 
encryption.level=NONE 

Edit: Я модернизировал проект cineasts здесь https://github.com/neo4j-examples/sdn4-cineasts/tree/4.2 работать с SDN 4.2.0.M1 и водитель Болт ,

И +4,1 филиал основан на SDN 4.1.2 и 2.0.3 OGM https://github.com/neo4j-examples/sdn4-cineasts/tree/4.1

С обеих ветвей, все тесты проходят и http://localhost:8080/movies?q=matrix не производят каких-либо исключений.

Обратите внимание, что существует проблема с SDN 4.1.2 и OGM 2.0.4. Это было исправлено в SDN 4.1.3-SNAPSHOT

+0

Спасибо, но это не удается развернуть, см. Мое обновление выше. Тем временем я создал оригинальный, немодифицированный пример sdn4-cineasts, но получаю «HTTP ERROR 405, проблема с доступом/auth/denied. Причина: метод запроса« POST »не поддерживается» при регистрации и регистрации. Поэтому я подозреваю, что пытался использовать пример, который не работает. –

0

Я пришел к выводу, что я не могу заставить Болта работать весной 4.1.2.RELEASE. Теперь я использую драйвер HTTP без проблем.

+0

см. Мой отредактированный ответ, я обновил зависимости от кинематографистов – Luanne

+0

У меня такие же проблемы с 4.1.2 и драйвером болта. Давайте подождем правильное решение. –

Смежные вопросы