0

Я построил новый проект, используя график данных Spring для Neo4J. Я использую Maven.Neo4j с SpringRestGraphDatabase - получение класса не найдено исключение

Все отлично работает со встроенной базой данных, но когда я пытаюсь установить базу данных на удаленном сервере с помощью REST я получаю:

 

    java.lang.ClassNotFoundException: org.springframework.data.neo4j.rest.SpringRestGraphDatabase 

я увидел post примерно один год назад, но с нет решения - по крайней мере, не тот, который работает для меня ... В этом посте они ссылались на аспектJ, который я действительно использую.

Кто-нибудь знает об этом? есть ли у кого-нибудь рабочий пример конфигурации?

Я действительно пробовал L-O-T разных конфигураций, основываясь на разных сообщениях на разных форумах и руководствах. Это мой последний вопрос - я просто укажу, что у меня также есть другие POM, и все они сгруппированы родительским POM (это проект ошибок).

Это определение компонента:

 <!-- Neo4j configuration (creates Neo4jTemplate) --> 
     <datagraph:config graphDatabaseService="neo4JRestGraphDatabase" /> 

      <!-- With this uncommented - it works great --> 
     <!--datagraph:config storeDirectory="data/graph.db" /--> 

И это POM проекта:

<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>com.vo.insight</groupId> 
    <artifactId>content-insights-model-processed</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>content-insights-model-processed</name> 
    <url>http://maven.apache.org</url> 

    <parent> 
     <artifactId>content-insights-parent</artifactId> 
     <groupId>com.vo.insight</groupId> 
     <version>1.0-SNAPSHOT</version> 
     <relativePath>../content-insights-parent/pom.xml</relativePath> 
    </parent> 


    <properties> 
     <neo4j-rest-graphdb.version>2.0.0-M06</neo4j-rest-graphdb.version> 
     <neo4j.version>1.8.M06</neo4j.version> 
    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>com.vo.insight</groupId> 
      <artifactId>content-insights-common</artifactId> 
      <version>${project.version}</version> 
     </dependency> 

     <!-- Neo4J --> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-neo4j</artifactId> 
      <version>3.0.0.BUILD-SNAPSHOT</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.neo4j</groupId> 
        <artifactId>neo4j</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <dependency> 
      <groupId>org.neo4j</groupId> 
      <artifactId>neo4j-rest-graphdb</artifactId> 
      <version>${neo4j-rest-graphdb.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.neo4j</groupId> 
        <artifactId>neo4j-kernel</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.neo4j</groupId> 
        <artifactId>neo4j-lucene-index</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.neo4j.app</groupId> 
      <artifactId>neo4j-server</artifactId> 
      <version>${neo4j.version}</version> 
      <scope>test</scope> 
      <exclusions> 
       <exclusion> 
        <groupId>org.slf4j</groupId> 
        <artifactId>log4j-over-slf4j</artifactId> 
       </exclusion> 

       <exclusion> 
        <groupId>org.neo4j</groupId> 
        <artifactId>neo4j</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.mortbay.jetty</groupId> 
        <artifactId>jetty</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jersey</groupId> 
        <artifactId>jersey-server</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.codehaus.jackson</groupId> 
        <artifactId>jackson-jaxrs</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.codehaus.jackson</groupId> 
        <artifactId>jackson-mapper-asl</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>de.huxhorn.lilith</groupId> 
        <artifactId>de.huxhorn.lilith.3rdparty.rrd4j</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jersey.contribs</groupId> 
        <artifactId>jersey-multipart</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.apache.felix</groupId> 
        <artifactId>org.apache.felix.main</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.apache.felix</groupId> 
        <artifactId>org.apache.felix.fileinstall</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.slf4j</groupId> 
        <artifactId>slf4j-jdk14</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <!-- Do not remove this although we are not using Hibernate! this is needed 
      for Neo4J --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.security</groupId> 
      <artifactId>spring-security-web</artifactId> 
      <version>3.1.4.RELEASE</version> 
     </dependency> 

     <!-- Cassandra Client --> 
     <dependency> 
      <groupId>me.prettyprint</groupId> 
      <artifactId>hector-core</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>me.prettyprint</groupId> 
      <artifactId>hector-object-mapper</artifactId> 
      <version>3.0-04</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.cassandra</groupId> 
      <artifactId>cassandra-all</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.thrift</groupId> 
      <artifactId>libthrift</artifactId> 
     </dependency> 


     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
     </dependency> 

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

     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
     </dependency> 

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

    <build> 
    </build> 
    <!-- this profile is for ci build mode. to activate it use -Pci flag --> 
    <profiles> 
     <profile> 
      <id>ci</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>aspectj-maven-plugin</artifactId> 
         <version>1.0</version> 
         <configuration> 
          <outxml>true</outxml> 
          <aspectLibraries> 
           <aspectLibrary> 
            <groupId>org.springframework</groupId> 
            <artifactId>spring-aspects</artifactId> 
           </aspectLibrary> 
           <aspectLibrary> 
            <groupId>org.springframework.data</groupId> 
            <artifactId>spring-data-neo4j</artifactId> 
           </aspectLibrary> 
          </aspectLibraries> 
          <source>1.6</source> 
          <target>1.6</target> 
         </configuration> 
         <executions> 
          <execution> 
           <goals> 
            <goal>compile</goal> 
            <goal>test-compile</goal> 
           </goals> 
          </execution> 
         </executions> 
         <dependencies> 
          <dependency> 
           <groupId>org.aspectj</groupId> 
           <artifactId>aspectjrt</artifactId> 
          </dependency> 
          <dependency> 
           <groupId>org.aspectj</groupId> 
           <artifactId>aspectjtools</artifactId> 
          </dependency> 
         </dependencies> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 
</project> 

Спасибо за вашу помощь!

Carmel

ответ

0

Eventualy, проблема заключается в определении моего neo4JRestGraphDatabase (который, к сожалению, я не вставил здесь ...).

Это было:

<bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.RestGraphDatabase"> 
     <constructor-arg value="http://localhost:7474/db/data/" /> 
    </bean> 

Вместо:

<bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase"> 
     <constructor-arg value="http://localhost:7474/db/data/" /> 
    </bean> 

Теперь у меня есть 'Подключение Отказался' проблема, но это another issue.

Что касается зависимостей, то зависимостей, упомянутых выше, действительно достаточно.

Спасибо всем, кто пытался помочь!

Carmel

1

Я думаю, что вам нужно включить org.springframework.data.spring-data-neo4j-rest артефакт, а не только org.neo4j.neo4j-rest-graph-db.

Кроме того, вы смешиваете версии довольно свободно

  • пружинными данных Neo4j 3,0 снимка
  • Neo4j-отдых-graphdb 2,0 веха
  • Neo4j 1,8 веха (Вы уверены, что не означает, использовать 2.0 M6 здесь также?)
  • длинный список исключений
  • неявных зависимости от пружинной безопасности-сетей 3.1.4 и весенне-ОРМА

Я не знаю соответствующих зависимостей и совместимости для SDN 3, и не обязательно что-то не так с его смешиванием, но если вы получите ClassNotFoundException или NoClassDefFoundError с таким помпой, вы можете посмотреть в дереве зависимостей, например, запустив в корне вашего проекта mvn dependency:tree -Dverbose, чтобы увидеть, есть ли конфликтующие версии, вызывающие молчание некоторых зависимостей.

4

Я думаю, что вы не хотите использовать зависимости «org.neo4j», если используете Spring Data. Я не эксперт, но мой текущий проект работает только с этим:

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-neo4j</artifactId> 
    <version>${org.springframework.data-version}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-neo4j-rest</artifactId> 
    <version>${org.springframework.data-version}</version> 
</dependency>