2015-01-11 4 views
0

Я загружаю новый проект из примера Accessing Neo4j Data with REST. В примере используется встроенная база данных, а не автономный сервер neo4j, но я хотел бы использовать интерфейс веб-интерфейса Neo4J для визуализации моих данных. Как включить интерфейс webadmin, начиная с этой конфигурации?Как включить neo4j webadmin при использовании spring-data-neo4j?

(Они получили WrappingNeoServerBootstrapper, работающий в use WrappingNeoServerBootstrapper with spring-data-neo4j, но из ответа отказалось много знаний, например, даже не упоминается, где разместить его в конфигурации. Будучи новым для POM, Spring Boot и Neo4j, я поэтому не могу сделать использование этого ответа.)

+0

Существует уже подобный вопрос http://stackoverflow.com/questions/21658546/how-can-i-use-the-webadmin-interface-with-an-embedded-neo4j-2-0 -instance – mavarazy

+0

Благодарим вас за предложение. Главный ответ в вопросе, на который вы ссылаетесь, предлагает конфигурацию, основанную на папке webapp, в дополнение к pom. Насколько я понимаю, использование Spring Boot и встроенного сервера tomcat обходит необходимость в папке webapp и т. Д., Поэтому конечные точки конфигурации этих двух вопросов не идентичны. Мой вопрос в частности о запуске интерфейса webadmin, начиная с кода «Accessing Neo4j Data with REST», который уменьшает шум сферы действия вопроса. Любая помощь, получающая это для работы, очень ценится! –

ответ

3

example Вы используете некоторые настройки, чтобы включить браузер Neo4j. Я начал с другого примера, пример Accessing Data with Neo4j, и он работал хорошо.

Вам нужно будет сделать следующее:

  1. Изменения версии на вашем весеннюю загрузку П в 1.2.1.Release:

    <parent> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-parent</artifactId> 
        <version>1.2.1.RELEASE</version> 
    </parent> 
    
  2. Добавить зависимости для Neo4jServer:

    <dependency> 
        <groupId>org.neo4j.app</groupId> 
        <artifactId>neo4j-server</artifactId> 
        <version>2.1.5</version> 
    </dependency> 
    <dependency> 
        <groupId>org.neo4j.app</groupId> 
        <artifactId>neo4j-server</artifactId> 
        <version>2.1.5</version> 
        <classifier>static-web</classifier> 
    </dependency> 
    
  3. Внедрение бегуна командной строки Spring Boot в ваших Applicati on.class:

    public class Application extends Neo4jConfiguration implements CommandLineRunner{ 
    
  4. Autowire ссылку на ваш GraphDatabaseService в вашем Application.class:

    @Autowired 
    GraphDatabaseService db; 
    
  5. @Override метода выполнения от CommanLineRunner в вашем Application.class:

    @Override 
    public void run(String... strings) throws Exception { 
        // used for Neo4j browser 
        try { 
         WrappingNeoServerBootstrapper neoServerBootstrapper; 
         GraphDatabaseAPI api = (GraphDatabaseAPI) db; 
    
         ServerConfigurator config = new ServerConfigurator(api); 
         config.configuration() 
          .addProperty(Configurator.WEBSERVER_ADDRESS_PROPERTY_KEY, "127.0.0.1"); 
         config.configuration() 
          .addProperty(Configurator.WEBSERVER_PORT_PROPERTY_KEY, "8686"); 
    
         neoServerBootstrapper = new WrappingNeoServerBootstrapper(api, config); 
         neoServerBootstrapper.start(); 
        } catch(Exception e) { 
         //handle appropriately 
        } 
        // end of Neo4j browser config 
    } 
    

Когда все будет готово, ваш Application.class должен выглядеть следующим образом:

package hello; 

import org.neo4j.graphdb.GraphDatabaseService; 
import org.neo4j.graphdb.factory.GraphDatabaseFactory; 
import org.neo4j.kernel.GraphDatabaseAPI; 
import org.neo4j.server.WrappingNeoServerBootstrapper; 
import org.neo4j.server.configuration.Configurator; 
import org.neo4j.server.configuration.ServerConfigurator; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.CommandLineRunner; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.annotation.Import; 
import org.springframework.data.neo4j.config.EnableNeo4jRepositories; 
import org.springframework.data.neo4j.config.Neo4jConfiguration; 
import org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration; 

@Configuration 
@EnableNeo4jRepositories 
@Import(RepositoryRestMvcConfiguration.class) 
@EnableAutoConfiguration 
public class Application extends Neo4jConfiguration implements CommandLineRunner{ 

    public Application() { 
     setBasePackage("hello"); 
    } 

    @Bean(destroyMethod = "shutdown") 
    public GraphDatabaseService graphDatabaseService() { 
     return new GraphDatabaseFactory().newEmbeddedDatabase("target/hello.db"); 
    } 

    @Autowired 
    GraphDatabaseService db; 



    @Override 
    public void run(String... strings) throws Exception { 
     // used for Neo4j browser 
     try { 
      WrappingNeoServerBootstrapper neoServerBootstrapper; 
      GraphDatabaseAPI api = (GraphDatabaseAPI) db; 

      ServerConfigurator config = new ServerConfigurator(api); 
      config.configuration() 
        .addProperty(Configurator.WEBSERVER_ADDRESS_PROPERTY_KEY, "127.0. 0.1"); 
      config.configuration() 
        .addProperty(Configurator.WEBSERVER_PORT_PROPERTY_KEY, "8686"); 

      neoServerBootstrapper = new WrappingNeoServerBootstrapper(api, config); 
      neoServerBootstrapper.start(); 
     } catch(Exception e) { 
      //handle appropriately 
     } 
     // end of Neo4j browser config 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 


} 

Браузер Neo4j будет доступен на хост и порт, сконфигурированный в методе run().

+0

Я должен упомянуть, что я только намерен использовать это для разработки. Я думаю, что на самом деле он запускает второй встроенный сервер http для обслуживания браузера Neo4j. –

+0

Спасибо, Джордж, ваше время и ответ очень ценятся. –

+0

Добро пожаловать. Я рад, что это помогло. –

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