2016-07-18 3 views
0

Я создал новый проект Maven:org.neo4j.ogm.exception.ResultProcessingException: Не удалось разобрать ответ

https://github.com/neosamples/neosamples

, где я постепенно копировать содержимое с:

https://github.com/luanne/flavorwocky

чтобы лучше понять, как это работает и какие зависимости необходимы. На данный момент я хотел бы просто дать возможность модульной проверке добавления новых элементов в GraphRepository. В настоящее время мой проект имеет этот макет:

enter image description here

Где:

Application.java

package com.samples.neo4j; 

...(imports) 

@Configuration 
@ComponentScan("com.samples.neo4j") 
@EnableAutoConfiguration 
@EnableTransactionManagement 
@EnableNeo4jRepositories("com.samples.neo4j.repository") 
public class Application extends Neo4jConfiguration { 

    final String grapheneUrl; 

    public Application() { 
    grapheneUrl = "http://neo4j:[email protected]:7474"; 
    } 

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

    @Bean 
    public org.neo4j.ogm.config.Configuration getConfiguration() { 
    org.neo4j.ogm.config.Configuration config = new org.neo4j.ogm.config.Configuration(); 
    config.driverConfiguration().setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver").setURI(grapheneUrl); 
    return config; 
    } 

    @Override 
    @Bean 
    public SessionFactory getSessionFactory() { 
    return new SessionFactory(getConfiguration(), "com.samples.neo4j.domain"); 
    } 

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

Где Neo4j является пользователем и neopass это пароль Я при использовании: http://localhost:7474/browser/

И:

Я пытаюсь запустить этот тест единицы в:

@ContextConfiguration(classes = { PersistenceContext.class }) 
@RunWith(SpringJUnit4ClassRunner.class) 
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) 

public class ServiceTest { 
    @Autowired 
    MyNodeRepository nodeRepository; 

    @Autowired 
    Session session; 

    @After 
    public void tearDown() { 
    session.purgeDatabase(); 
    } 

    @Test 
    public void test() { 
    MyNode n = new MyNode("test"); 
    nodeRepository.save(n); 
    MyNode node = IteratorUtil.firstOrNull(nodeRepository.findAll()); 
    assertNotNull(node); 
    } 
} 

Но когда я запускаю тест блока выше я получаю ниже ошибка в консоли:

2016-07-19 12:39:41,571 WARN o4j.ogm.drivers.http.request.HttpRequest: 235 - Caught response exception: Unauthorized 
2016-07-19 12:39:41,596 WARN o4j.ogm.drivers.http.request.HttpRequest: 235 - Caught response exception: Auth scheme may not be null 

и этот трассировки стека:

http://pastebin.com/tK42AqtW

Я пытался настроить свои зависимости пом в течение достаточно долгого времени, но я чувствую, что я бегу по кругу, ниже мой текущий конфигурация:

http://pastebin.com/5vt2EBdu

Любые предложения?

+0

Как настроить SDN? У вас есть ogm.properties или это конфигурация Java? Пожалуйста, поделитесь конфигурацией – Luanne

ответ

1

Похоже, что ваши верительные грамоты не совсем правильные. Если вы приняли конфигурацию flavorwocky, то неясно, что представляет ваш GRAPHENEDB_URL. Возможно, измените свой код, чтобы настроить URI следующим образом:

Приложение.Java

config.driverConfiguration().setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver").setURI("http://neo4j:[email protected]:7474"); 

(Заменить Neo4j имя пользователя/пароль/хост/порт с тем, что вы используете)

Edit:

Проблема в том, эта зависимость, которая не совместима с драйверами используемый SDN 4.1.2:

<dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-ogm-drivers</artifactId> 
    <version>2.0.0-M02</version> 
    <scope>test</scope>   
</dependency> 

Вам не нужно включать зависимость от драйвера HTTP. Но если вы используете встроенный или болт, то вам необходимо включить их (документально here)

Если удалить эту зависимость, то больше не является проблемой аутентификации, но ваш тест по-прежнему терпят неудачу, потому MyNode не может быть создан - для этого требуется конструктор no-args.

Для модульных испытаний я рекомендую следовать за вкусовым и использовать встроенный драйвер. Вам нужно будет указать appropriate ogm.properties file.

+0

Да, я тоже попробовал. Я обновил пример на основе вашего предложения, чтобы сделать его более понятным. Но да, похоже, проблема авторизации не понимает, почему с тех же учетных данных, которые я использую при входе в http: // localhost: 7474/browser/из браузера. – u123

+0

Странно. Если у вас есть код где-то на github, я могу посмотреть – Luanne

+0

Прохладный, я добавил его здесь: https: //github.com/neosamples/neosamples – u123

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