Ich arbeite an einem Java Rest Service mit Spring MVC (4.2.0.RELEASE) einschließlich einer Neo4j-Datenbank. Daher wird Spring Data Neo4j (4.1.1.RELEASE) verwendet.Spring Data Neo4j NullPointerException bei der Bereitstellung mehrerer Versionen auf Tomcat
Die SDN-Konfiguration sieht wie folgt aus:
@Configuration
@ComponentScan(basePackages = { "com.xxx.yyy" })
@EnableNeo4jRepositories(basePackages = "com.xxx.yyy.dao.repo")
@EnableTransactionManagement
public class Neo4jConfig extends Neo4jConfiguration {
@Autowired
private ApplicationProperties properties;
@Bean
public SessionFactory getSessionFactory() {
return new SessionFactory(getConfiguration(), "com.xxx.yyy.dao.beans");
}
@Bean
public Neo4jOperations neo4jTemplate() throws Exception {
return new Neo4jTemplate(getSession());
}
@Bean
public org.neo4j.ogm.config.Configuration getConfiguration() {
org.neo4j.ogm.config.Configuration config = new org.neo4j.ogm.config.Configuration();
config.driverConfiguration().setDriverClassName(this.properties.getNeo4jDriver())
.setURI(this.properties.getNeo4jEndpoint())
.setCredentials(this.properties.getNeo4jUser(), this.properties.getNeo4jPassword());
return config;
}
@Bean
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public Session getSession() throws Exception {
return super.getSession();
}
}
Die Anwendung wird auf einem tomcat7 in Produktionsumgebung bereitgestellt. Alles funktioniert wie ein Zauber, wenn nur eine Version der Anwendung bereitgestellt wird und das Versionsflag nicht ausgefüllt ist.
Für eine Bereitstellung ohne Ausfallzeit möchte ich das Versionskennzeichen auf dem Tomcat verwenden, um mehrere Versionen bereitzustellen. Wenn ich dies tue, funktioniert die Anwendung nicht mehr wegen einer NullPointerException
in der org.neo4j.ogm.context.RestModelMapper
.
Stacktrace:
java.lang.NullPointerException
at org.neo4j.ogm.context.RestModelMapper.mapEntity(RestModelMapper.java:153) ~[neo4j-ogm-core-2.0.1.jar:?]
at org.neo4j.ogm.context.RestModelMapper.map(RestModelMapper.java:76) ~[neo4j-ogm-core-2.0.1.jar:?]
at org.neo4j.ogm.session.delegates.ExecuteQueriesDelegate.query(ExecuteQueriesDelegate.java:94) ~[neo4j-ogm-core-2.0.1.jar:?]
at org.neo4j.ogm.session.delegates.ExecuteQueriesDelegate.query(ExecuteQueriesDelegate.java:73) ~[neo4j-ogm-core-2.0.1.jar:?]
at org.neo4j.ogm.session.Neo4jSession.query(Neo4jSession.java:313) ~[neo4j-ogm-core-2.0.1.jar:?]
Dieses Problem tritt nur, wenn ich die Version Flagge auf tomcat verwenden. Weiß jemand, woran das Problem liegt?