Интеграция (maven) Spring Data Neo4j в динамический веб-проект с использованием Jersey и Tomcat - PullRequest
0 голосов
/ 23 января 2012

Я немного теряюсь в своем собственном (включенном maven) динамическом WEB-проекте. Проект работает нормально, у меня запущен RESTful WebService (Джерси), и я могу его использовать.

... моим следующим шагом было сохранение классов моего домена с помощью Spring Data и Neo4j. Итак, я добавил несколько тегов в свой pom.xml

...
<repository>
  <id>spring-milestone</id>
  <name>Spring Maven MILESTONE Repository</name>
  <url>http://maven.springframework.org/milestone</url>
</repository>

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

Мой следующий шаг состоял в том, чтобы аннотировать мои классы сущностей ... вот простой пример:

...
@NodeEntity
public class Category {

@GraphId Long nodeId;
String categoryType;

public Category(String categoryType){
    this.categoryType = categoryType;
}

}
...

хорошо, все хорошо ... теперь я хочу сохранить свой объект категории ...

@Autowired Neo4jTemplate template;
@Test @Transactional 
public void toGraphDb() {

      template.save(new Category("mashineCategory"));
}   

когда я запускаю тест, я получаю исключение NullPointerException, потому что шаблон имеет значение null

Я полагаю, что в моем проекте чего-то не хватает, но я не уверен, в какую папку / файл добавить информацию / файлы ...

вот мой web.xml:

...
<display-name>ElisaSimulatorM4</display-name>

<servlet>
  <servlet-name>Jersey REST Service</servlet-name>
   <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>de.elisa.communication.webservice.restservice.implementation</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>


<servlet-mapping>
  <servlet-name>Jersey REST Service</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
...

В некоторых руководствах я читал кое-что о dispatcherServlets и ApplicatonContext.xml, но не знаю, где его разместить в моем проекте.

Может быть, кто-то может мне помочь ...

Ps. Я хотел загрузить скриншот из моего дерева проектов, но как у меня нет репутации ... извините за это

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Возможно, лучше взглянуть на прилагаемые примеры Spring Data Neo4j http://spring.neo4j.org/examples, некоторые из них предназначены для простых проектов, таких как hello-world, а некоторые - для более продвинутых веб-приложений.

Дляполучить представление о Spring Documentation об общей настройке приложения Spring (Web).

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

Файл applicationContext.xml является файлом конфигурации SpringFramework.Этого должно быть достаточно, чтобы иметь минимальный, как это из примера hello-world.

Поместите его в src / main / resources / applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:neo4j="http://www.springframework.org/schema/data/neo4j"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/data/neo4j http://www.springframework.org/schema/data/neo4j/spring-neo4j-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <context:spring-configured/>
    <context:annotation-config/>

    <neo4j:config storeDirectory="path/to/db"/>
    <neo4j:repositories base-package="org.example.repository"/>

</beans>
0 голосов
/ 23 марта 2013

Возникла та же проблема после копирования примера кода из Good Relationships и попытки «вызвать магию» весны. AutoWiring - это волшебство, но не совсем волшебное без загрузки класса через контекст приложения Spring. Следующее работает для автономного клиента.

    ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("standaloneAppContext.xml");

    Test test = ctx.getBean(Test.class);
...